翻譯|使用教程|編輯:李顯亮|2020-06-10 10:58:58.477|閱讀 444 次
概述:用于.NET API的Aspose.PSD提供了許多與PSD,PSB,AI和許多其他文件格式一起使用的功能。讓我們探討以下與在PSD文件中添加圖層有關(guān)的用例。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
照片是反映信息的一種非常有用的方法。PSD格式文件用于創(chuàng)建圖像。但是,可能會(huì)出現(xiàn)類似沿同一行編輯多個(gè)Photoshop文件的情況。例如,照片處理應(yīng)用程序可能需要與其他操作一起在多個(gè)Photoshop文檔中添加一個(gè)圖層。
用于.NET API的Aspose.PSD提供了許多與PSD,PSB,AI和許多其他文件格式一起使用的功能。讓我們探討以下與在PSD文件中添加圖層有關(guān)的用例:
Aspose.PSD for .NET已升級(jí)至V20.5,如果你還沒有用過Aspose.PSD可以點(diǎn)擊這里下載最新版測(cè)試。
用于.NET API的Aspose.PSD支持在PSD文件中創(chuàng)建填充層。您不一定需要從現(xiàn)有文件加載圖層。只需按照以下步驟在運(yùn)行時(shí)在PSD文件中添加填充層:
以下代碼段顯示了如何使用C#在Photoshop中添加填充層:
string outputFilePath = Path.Combine(dataDir, "output.psd"); using (var image = new PsdImage(100, 100)) { FillLayer colorFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Color); colorFillLayer.DisplayName = "Color Fill Layer"; image.AddLayer(colorFillLayer); FillLayer gradientFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Gradient); gradientFillLayer.DisplayName = "Gradient Fill Layer"; image.AddLayer(gradientFillLayer); FillLayer patternFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Pattern); patternFillLayer.DisplayName = "Pattern Fill Layer"; patternFillLayer.Opacity = 50; image.AddLayer(patternFillLayer); image.Save(outputFilePath); }
此代碼段將生成指定尺寸的PSD文件,其中以下屏幕截圖顯示了三個(gè)填充層的名稱,這些名稱與上述C#代碼所設(shè)置的完全相同:
讓我們看看如何從現(xiàn)有的Photoshop文件中添加圖層。以下是添加現(xiàn)有填充層的可能性:
圖案填充可能具有圖像,線條或陰影來填充該區(qū)域。您需要按照以下步驟在PSD圖像中添加帶有Patten Fill的圖層:
下面的代碼段顯示了如何使用C#使用模式填充添加填充層:
// Add support of Fill layers: Pattern string sourceFileName = dataDir + "PatternFillLayer.psd"; string exportPath = dataDir + "PatternFillLayer_Edited.psd"; double tolerance = 0.0001; var im = (PsdImage)Image.Load(sourceFileName); using (im) { foreach (var layer in im.Layers) { if (layer is FillLayer) { FillLayer fillLayer = (FillLayer)layer; PatternFillSettings fillSettings = (PatternFillSettings)fillLayer.FillSettings; if (fillSettings.HorizontalOffset != -46 || fillSettings.VerticalOffset != -45 || fillSettings.PatternId != "a6818df2-7532-494e-9615-8fdd6b7f38e5" || fillSettings.PatternName != "$$$/Presets/Patterns/OpticalSquares=Optical Squares" || fillSettings.AlignWithLayer != true || fillSettings.Linked != true || fillSettings.PatternHeight != 64 || fillSettings.PatternWidth != 64 || fillSettings.PatternData.Length != 4096 || Math.Abs(fillSettings.Scale - 50) > tolerance) { throw new Exception("PSD Image was read wrong"); } // Editing fillSettings.Scale = 300; fillSettings.HorizontalOffset = 2; fillSettings.VerticalOffset = -20; fillSettings.PatternData = new int[] { Color.Red.ToArgb(), Color.Blue.ToArgb(), Color.Blue.ToArgb(), Color.Blue.ToArgb(), Color.Red.ToArgb(), Color.Blue.ToArgb(), Color.Blue.ToArgb(), Color.Blue.ToArgb(), Color.Red.ToArgb() }; fillSettings.PatternHeight = 3; fillSettings.PatternWidth = 3; fillSettings.AlignWithLayer = false; fillSettings.Linked = false; fillSettings.PatternId = Guid.NewGuid().ToString(); fillLayer.Update(); break; } } im.Save(exportPath); }
可以使用漸變填充在Photoshop文檔中填充圖層。用于.NET API的Aspose.PSD支持以下類型的漸變填充:
以下是添加帶有漸變填充的圖層的步驟:
下面的代碼段基于這些步驟,并顯示了如何使用C#在Photoshop文檔中添加GradientFill層:
string fileName = dataDir + "FillLayerGradient.psd"; GradientType[] gradientTypes = new[] { GradientType.Linear, GradientType.Radial, GradientType.Angle, GradientType.Reflected, GradientType.Diamond }; using (var image = Image.Load(fileName)) { PsdImage psdImage = (PsdImage)image; FillLayer fillLayer = (FillLayer)psdImage.Layers[0]; GradientFillSettings fillSettings = (GradientFillSettings)fillLayer.FillSettings; foreach (var gradientType in gradientTypes) { fillSettings.GradientType = gradientType; fillLayer.Update(); psdImage.Save(fileName + "_" + gradientType.ToString() + ".png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha }); } }
此代碼段將生成五個(gè)不同的文件,每個(gè)文件在PSD文件的層中填充不同的漸變。
可以在Photoshop文檔(PSD文件)中添加帶有顏色填充的圖層。請(qǐng)按照以下步驟添加或創(chuàng)建帶有顏色填充的填充層:
以下代碼段基于上述步驟,這些步驟顯示了如何使用C#在Photoshop文檔中添加填充層:
string sourceFileName = dataDir + "ColorFillLayer.psd"; string exportPath = dataDir + "ColorFillLayer_output.psd"; var im = (PsdImage)Image.Load(sourceFileName); using (im) { foreach (var layer in im.Layers) { if (layer is FillLayer) { var fillLayer = (FillLayer)layer; if (fillLayer.FillSettings.FillType != FillType.Color) { throw new Exception("Wrong Fill Layer"); } var settings = (IColorFillSettings)fillLayer.FillSettings; settings.Color = Color.Red; fillLayer.Update(); im.Save(exportPath); break; } } }
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn