ایجاد، باز کردن و ذخیره تصاویر
ایجاد فایلهای تصویری
Aspose.PSD برای .NET به توسعهدهندگان امکان ایجاد تصاویر خودشان را میدهد. از متد ایجاد استاتیکی که توسط کلاس تصویر ارائه شده استفاده کنید تا تصاویر جدید ایجاد کنید. کافی است یک شیء مناسب از یکی از کلاسهای فضای نام ImageOptions برای فرمت تصویر خروجی مورد نظر عرضه کنید. برای ایجاد یک فایل تصویر، ابتدا یک نمونه از یکی از کلاسهای فضای نام ImageOptions ایجاد کنید. این کلاسها فرمت تصویر خروجی را مشخص میکنند. کلاسهایی از فضای نام ImageOptions زیر وجود دارند (توجه داشته باشید که تنها خانواده فرمتهای فایل PSD در حال حاضر برای ایجاد پشتیبانی میشوند):
PsdOptions تنظیمهای برای ایجاد یک فایل PSD را مشخص میکند. فایلهای تصویر میتوانند با تنظیم یک مسیر خروجی یا توسط تنظیم یک جریان ایجاد شوند.
ایجاد با تنظیم مسیر
از ImageOptions فضای نام PsdOptions ایجاد کنید و ویژگیهای مختلف را تنظیم کنید. مهمترین ویژگی برای تنظیم ویژگی منبع است. این ویژگی مشخص میکند که دادههای تصویر در کجا ذخیره شدهاند (در یک فایل یا یک جریان). در مثال زیر، منبع یک فایل است. پس از تنظیم ویژگیها، شیء را به یکی از متدهای استاتیک Create همراه با پارامترهای پهنا و ارتفاع گذرانید. پهنا و ارتفاع به پیکسل تعریف شدهاند.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
// Creates an instance of PsdOptions and set its various properties | |
PsdOptions psdOptions = new PsdOptions(); | |
psdOptions.CompressionMethod = CompressionMethod.RLE; | |
// Define the source property for the instance of PsdOptions. Second boolean parameter determines if the file is temporal or not | |
psdOptions.Source = new FileCreateSource(desName, false); | |
// Creates an instance of Image and call Create method by passing the PsdOptions object | |
using (Image image = Image.Create(psdOptions, 500, 500)) | |
{ | |
image.Save(); | |
} |
ایجاد با استفاده از جریان
فرایند ایجاد یک تصویر با استفاده از یک جریان همانند استفاده از یک مسیر است. تنها تفاوت این است که شما باید یک نمونه از StreamSource ایجاد کنید که با انتقال یک شیء Stream به سازنده ایجاد شده و اختصاص دادن آن به ویژگی منبع مشغول شود.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string desName = dataDir + "CreatingImageUsingStream_out.bmp"; | |
// Creates an instance of BmpOptions and set its various properties | |
BmpOptions ImageOptions = new BmpOptions(); | |
ImageOptions.BitsPerPixel = 24; | |
// Create an instance of System.IO.Stream | |
Stream stream = new FileStream(dataDir + "sample_out.bmp", FileMode.Create); | |
// Define the source property for the instance of BmpOptions Second boolean parameter determines if the Stream is disposed once get out of scope | |
ImageOptions.Source = new StreamSource(stream, true); | |
// Creates an instance of Image and call Create method by passing the BmpOptions object | |
using (Image image = Image.Create(ImageOptions, 500, 500)) | |
{ | |
// Do some image processing | |
image.Save(desName); | |
} |
باز کردن فایلهای تصویری
توسعهدهندگان میتوانند از API Aspose.PSD برای .NET برای باز کردن فایلهای تصویر PSD موجود برای اهداف مختلف مانند افزودن افکت به تصویر یا تبدیل یک فایل موجود به یک فرمت دیگر استفاده کنند. هر چه اهداف باشد، Aspose.PSD دو روش استاندارد برای باز کردن فایلهای موجود فراهم میکند: از فایل یا از یک جریان.
باز کردن از دیسک
تصویر را با انتقال مسیر و نام فایل به عنوان پارامتر به متد استاتیک Load ارائه شده توسط کلاس Image باز کنید.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFile = dataDir + @"sample.psd"; | |
string destName = dataDir + "result.png"; | |
// load PSD image and replace the non found fonts. | |
using (Image image = Image.Load(sourceFile)) | |
{ | |
PsdImage psdImage = (PsdImage)image; | |
psdImage.Save(destName, new PngOptions()); | |
} |
باز کردن با استفاده از یک جریان
گاهی اوقات تصویری که میخواهیم باز کنیم به صورت یک جریان ذخیره شده است. در چنین مواردی از نسخه با بارگذاری اضافی متد Load استفاده کنید. این متد یک شیء Stream را به عنوان آرگومان قبول میکند تا تصویر را باز کند.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFile = dataDir + @"sample.psd"; | |
string destName = dataDir + "result.png"; | |
FileStream fStream = new FileStream(sourceFile, FileMode.Open); | |
fStream.Position = 0; | |
// load PSD image and replace the non found fonts. | |
using (Image image = Image.Load(fStream)) | |
{ | |
PsdImage psdImage = (PsdImage)image; | |
MemoryStream stream = new MemoryStream(); | |
psdImage.Save(stream, new PngOptions()); | |
} |
بارگیری تصویر به عنوان لایه
این مقاله استفاده از Aspose.PSD برای بارگیری یک تصویر به عنوان یک لایه را نشان میدهد. APIهای Aspose.PSD متداول و آسانی را برای دستیابی به این هدف ارائه کردهاند. Aspose.PSD شیء PsdImage متد AddLayer را از کلاس PsdImage برای اضافه کردن یک تصویر به یک فایل PSD به عنوان یک لایه ارائه کرده است.
مراحل بارگیری تصویر به عنوان لایه به شرح زیر است:
- ایجاد یک نمونه از تصویر با استفاده از کلاس PsdImage با پهنا و ارتفاع مشخص.
- بارگیری یک فایل PSD به عنوان تصویر با استفاده از متد کارخانه Load ارائه شده توسط کلاس Image.
- ایجاد یک نمونه از کلاس Layer و اختصاص دادن لایه تصویر PSD به آن.
- اضافه کردن لایه ایجاد شده با استفاده از متد AddLayer ارائه شده توسط کلاس PsdImage
- ذخیره نتایج.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string filePath = dataDir + "PsdExample.psd"; | |
string outputFilePath = dataDir + "PsdResult.psd"; | |
using (var image = new PsdImage(200, 200)) | |
{ | |
using (var im = Image.Load(filePath)) | |
{ | |
Layer layer = null; | |
try | |
{ | |
layer = new Layer((RasterImage)im); | |
image.AddLayer(layer); | |
} | |
catch (Exception e) | |
{ | |
if (layer != null) | |
{ | |
layer.Dispose(); | |
} | |
throw; | |
} | |
} | |
image.Save(outputFilePath); | |
} |
بارگیری تصویر به عنوان لایه از یک جریان
این مقاله استفاده از Aspose.PSD برای بارگیری تصویر به عنوان یک لایه از یک جریان را نشان میدهد. برای بارگیری یک تصویر از یک جریان، به سادگی یک شیء جریانی که حاوی یک تصویر است، به سازنده کلاس Layer منتقل کنید. لایه ایجاد شده را با استفاده از متد AddLayer ارائه شده توسط کلاس PsdImage اضافه کنید و نتایج را ذخیره کنید.
در زیر کد نمونه آورده شده است.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string outputFilePath = dataDir + "PsdResult.psd"; | |
var filesList = new string[] | |
{ | |
"PsdExample.psd", | |
"BmpExample.bmp", | |
"GifExample.gif", | |
"Jpeg2000Example.jpf", | |
"JpegExample.jpg", | |
"PngExample.png", | |
"TiffExample.tif", | |
}; | |
using (var image = new PsdImage(200, 200)) | |
{ | |
foreach (var fileName in filesList) | |
{ | |
string filePath = dataDir + fileName; | |
using (var stream = new FileStream(filePath, FileMode.Open)) | |
{ | |
Layer layer = null; | |
try | |
{ | |
layer = new Layer(stream); | |
image.AddLayer(layer); | |
} | |
catch (Exception e) | |
{ | |
if (layer != null) | |
{ | |
layer.Dispose(); | |
} | |
throw e; | |
} | |
} | |
} | |
image.Save(outputFilePath); | |
} |
ذخیره فایلهای تصویری
Aspose.PSD به شما امکان میدهد فایلهای تصویری را از ابتدا ایجاد کنید. همچنین امکان ویرایش فایلهای تصویری موجود را فراهم میکند. هنگامی که تصویر ایجاد یا تغییر داده شود، فایل معمولا به دیسک ذخیره میشود. Aspose.PSD برای شما متدهایی را برای ذخیره تصاویر در دیسک با تعیین مسیر یا استفاده از یک شیء Stream فراهم میکند.
ذخیره در دیسک
کلاس Image یک شیء تصویر را نمایان میکند، بنابراین این کلاس تمام ابزارهای لازم برای ایجاد، بارگیری و ذخیره یک فایل تصویر ارائه میدهد. از متد Save کلاس Image برای ذخیره تصاویر استفاده کنید. یک نسخه با بارگذاری بیش از حد از متد ذخیره، محل فایل را به عنوان یک رشته قبول میکند.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFile = dataDir + @"sample.psd"; | |
string destName = dataDir + "result.png"; | |
// load PSD image and replace the non found fonts. | |
using (Image image = Image.Load(sourceFile)) | |
{ | |
PsdImage psdImage = (PsdImage)image; | |
psdImage.Save(destName, new PngOptions()); | |
} |
ذخیره در یک جریان
نسخه تغییر یافته از متد Save شیء Stream را به عنوان آرگومان قبول میکند و فایل تصویر را در جریان ذخیره میکند.
اگر تصویر با تعیین هرکدام از CreateOptions در سازنده Image ایجاد شود، تصویر بهطور خودکار به مسیر یا جریانی که در زمان مقدماتیسازی کلاس Image توسط فراخوانی متد Save که هیچ پارامتری را قبول نمیکند ذخیره شده است، ذخیره میشود.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFile = dataDir + @"sample.psd"; | |
string destName = dataDir + "result.png"; | |
// load PSD image and replace the non found fonts. | |
using (Image image = Image.Load(sourceFile)) | |
{ | |
PsdImage psdImage = (PsdImage)image; | |
MemoryStream stream = new MemoryStream(); | |
psdImage.Save(stream, new PngOptions()); | |
} |
تنظیم برای جایگزین کردن فونتهای گم شده
توسعهدهندگان میتوانند از API Aspose.PSD برای .NET برای بارگیری فایلهای تصویر PSD موجود برای اهداف مختلف استفاده کنند، به عنوان مثال برای تنظیم نام پیشفرض فونت هنگام ذخیره سندات PSD به صورت یک تصویر raster (در فرمتهای PNG، JPG و BMP). این فونت پیشفرض باید برای همه فونتهای گم شده (فونتهایی که در سیستم عامل فعلی یافت نمیشوند) استفاده شود. پس از اینکه تصویر اصلاح شد، فایل به دیسک ذخیره خواهد شد.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFileName = "sample_konstanting.psd"; | |
string[] outputs = new string[] | |
{ | |
"replacedfont0.tiff", | |
"replacedfont1.png", | |
"replacedfont2.jpg" | |
}; | |
using (PsdImage image = (PsdImage)Image.Load(sourceFileName, new PsdLoadOptions())) | |
{ | |
// This way you can use different fonts for different outputs | |
image.Save(outputs[0], new TiffOptions(TiffExpectedFormat.TiffJpegRgb) { DefaultReplacementFont = "Arial" }); | |
image.Save(outputs[1], new PngOptions { DefaultReplacementFont = "Verdana" }); | |
image.Save(outputs[2], new JpegOptions { DefaultReplacementFont = "Times New Roman" }); | |
} |