Aspose.PSD for .NET 21.11 - リリースノート

キー 概要 カテゴリ
PSDNET-767 既存のテキスト レイヤーをレイヤー グループに追加する際の例外 バグ
PSDNET-988 TextLayer.UpdateText での IndexOutOfRangeException バグ
PSDNET-989 エクスポートされた図形の座標が結果ファイルに間違って表示される バグ
PSDNET-1002 フォルダーのエクスポート時にベクター形状が不正確にエクスポートされる バグ

パブリック API 変更

追加された API:

  • なし

削除された API:

  • なし

使用例:

PSDNET-767. 既存のテキスト レイヤーをレイヤー グループに追加する際の例外

            string outputPsd = "out_dummy_group.psd";

            var psdOptions = new PsdOptions()
            {
                Source = new StreamSource(new MemoryStream(), true),
                ColorMode = ColorModes.Rgb,
                ChannelsCount = 4,
                ChannelBitsCount = 8,
                CompressionMethod = CompressionMethod.RLE
            };
            using (PsdImage image = (PsdImage)Image.Create(psdOptions, 10, 15))
            {
                var group = image.AddLayerGroup("TestGroup", 0, true);
                var layer = image.AddTextLayer("Text", Rectangle.FromLeftTopRightBottom(-2, 3, 14, 17));
                group.AddLayer(layer);

                image.Save(outputPsd);
            }

PSDNET-988. TextLayer.UpdateText での IndexOutOfRangeException

            string srcFile = "M1TTTT16062021001.psd";
            string fontsFolder = "Fonts";
            string outputPng = "out_M1TTTT16062021001.png";

            FontSettings.SetFontsFolder(fontsFolder);
            FontSettings.UpdateFonts();

            string[] words = new[] { "Mom", "Stacy" };
            string[] fonts = new[] { "Caveat", "Gochi Hand", "Lobster", "Satisfy" };

            using (var image = (PsdImage)Image.Load(srcFile))
            {
                foreach (var layer in image.Layers)
                {
                    var txtLayer = layer as TextLayer;
                    if (txtLayer != null)
                    {
                        for (int w = 0; w < words.Length; w++)
                        {
                            for (int f = 0; f < fonts.Length; f++)
                            {
                                txtLayer.UpdateText(words[w]);
                                foreach (var txtItem in txtLayer.TextData.Items)
                                {
                                    txtItem.Style.FontName = FontSettings.GetAdobeFontName(fonts[f]);
                                }

                                txtLayer.TextData.UpdateLayerData();
                            }
                        }
                    }
                }

                image.Save(outputPng, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
            }

PSDNET-989. エクポートされた図形の座標が結果ファイルに間違って表示される

        public void CreatingVectorPathExample()
        {
            string outputPsd = "outputPsd.psd";

            using (var psdImage = (PsdImage)Image.Create(new PsdOptions() { Source = new Sources.StreamSource(new MemoryStream()), }, 500, 500))
            {
                FillLayer layer = FillLayer.CreateInstance(PSD.FileFormats.Psd.Layers.FillSettings.FillType.Color);
                psdImage.AddLayer(layer);

                VectorPath vectorPath = VectorDataProvider.CreateVectorPathForLayer(layer);
                vectorPath.FillColor = Color.IndianRed;
                PathShape shape = new PathShape();
                shape.Points.Add(new BezierKnot(new PointF(50, 150), true));
                shape.Points.Add(new BezierKnot(new PointF(100, 200), true));
                shape.Points.Add(new BezierKnot(new PointF(0, 200), true));
                vectorPath.Shapes.Add(shape);
                VectorDataProvider.UpdateLayerFromVectorPath(layer, vectorPath, true);

                psdImage.Save(outputPsd);
            }
        }

## **ベクトルパスエディター (ここには、ベクターパスを編集するためのクラスが配置されています)**

**PSDNET-1002. フォルダーのエクスポート時にベクター形状が不正確にエクスポートされる**

<div class="highlight"><pre class="chroma"><code class="language-csharp" data-lang="csharp">            <span class="kt">string</span> <span class="n">srcFile</span> <span class="p">=</span> <span class="s">&#34;psdnet1002.psd&#34;</span><span class="p">;</span>
            <span class="kt">string</span> <span class="n">outputPng</span> <span class="p">=</span> <span class="s">&#34;output.png&#34;</span><span class="p">;</span>

            <span class="k">using</span> <span class="p">(</span><span class="kt">var</span> <span class="n">image</span> <span class="p">=</span> <span class="p">(</span><span class="n">PsdImage</span><span class="p">)</span><span class="n">Image</span><span class="p">.</span><span class="n">Load</span><span class="p">(</span><span class="n">srcFile</span><span class="p">))</span>
            <span class="p">{</span>
                <span class="n">image</span><span class="p">.</span><span class="n">Layers</span><span class="p">[</span><span class="m">4</span><span class="p">].</span><span class="n">Save</span><span class="p">(</span><span class="n">outputPng</span><span class="p">,</span> <span class="k">new</span> <span class="n">PngOptions</span><span class="p">()</span> <span class="p">{</span> <span class="n">ColorType</span> <span class="p">=</span> <span class="n">PngColorType</span><span class="p">.</span><span class="n">TruecolorWithAlpha</span> <span class="p">});</span>
            <span class="p">}</span>
</code></pre></div>