การแปลงรูปภาพ

การแปลงรูปภาพเป็นขาวดำและระดับสีเทา

บางครั้งคุณอาจต้องการที่จะแปลงรูปภาพสีเป็นขาวดำหรือระดับสีเทาสำหรับการพิมพ์หรือเก็บถาวรไว้ บทความนี้จะสาธิตการใช้ Aspose.PSD สำหรับ .NET API เพื่อบรรลุการนี้โดยใช้วิธีการสองตัวดังนี้

  • การทำภาพกลม
  • การทำสีเทา

การทำภาพกลม

เพื่อเข้าใจแนวคิดของการทำภาพกลม สำคัญที่จะประกาศรูปภาพจากฐานสองที่เป็นรูปภาพดิจิตอลที่มีเพียงค่าสองค่าสำหรับแต่ละพิกเซล โดยปกติสีสองสีที่ใช้สำหรับรูปภาพกลมคือสีดำและสีขาวถึงท่านสองสีอื่น ๆ สามารถนำมาใช้ได้ การทำภาพกลมคือกระบวนการที่ทำให้รูปเป็นขั้นที่สองหมายความว่าแต่ละพิกเซลถูกเก็บในรูปแบบเดี่ยวเดียว (0 หรือ 1) ที่ 0 หมายถึงการขาดสีและ 1 หมายถึงสีมีอยู่ ในปัจจุบัน Aspose.PSD สำหรับ .NET API รองรับวิธีการทำภาพกลมสองวิธี

การทำภาพกลมด้วยฟิกซ์ทรีเชิล

โค้ดตัวอย่างต่อไปนี้จะแสดงถึงวิธีการใช้ฟิกซ์ทรีชิลให้นำไปใช้กับรูปภาพ

// 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 + @"BinarizationWithFixedThreshold_out.jpg";
// Load an image
using (Image image = Image.Load(sourceFile))
{
// Cast the image to RasterCachedImage and Check if image is cached
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// Cache image if not already cached
rasterCachedImage.CacheData();
}
// Binarize image with predefined fixed threshold and Save the resultant image
rasterCachedImage.BinarizeFixed(100);
rasterCachedImage.Save(destName, new JpegOptions());
}

การทำภาพกลมด้วยฟิกซ์ออตซุ

โค้ดตัวอย่างต่อไปนี้แสดงถึงวิธีการใช้การทำภาพกลมด้วยฟิกซ์ออตซุให้นำไปใช้กับรูปภาพ

// 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 + @"BinarizationWithOtsuThreshold_out.jpg";
// Load an image
using (Image image = Image.Load(sourceFile))
{
// Cast the image to RasterCachedImage and Check if image is cached
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// Cache image if not already cached
rasterCachedImage.CacheData();
}
// Binarize image with Otsu Thresholding and Save the resultant image
rasterCachedImage.BinarizeOtsu();
rasterCachedImage.Save(destName, new JpegOptions());
}

การทำสีเทา

การทำสีเทาคือกระบวนการที่ทำให้รูปภาพที่มีโทนสีต่อเนื่องเป็นรูปภาพที่มีโทนสีเทาไม่ต่อเนื่อง โค้ดตัวอย่างต่อไปนี้จะแสดงถึงวิธีการใช้การทำสีเทา

แปลงเลเยอร์รูปภาพ GIF เป็นรูปภาพ TIFF

บางครั้งจะต้องการสกัดและแปลงเลเยอร์ของรูปภาพ PSD เป็นรูปแบบภาพราสเตอร์อื่นเพื่อตอบโตกับความต้องการของแอปพลิเคชัน Aspose.PSD API สนับสนุนคุณสมบัติในการสกัดและแปลงเลเยอร์ของรูปภาพ PSD เป็นรูปแบบภาพราสเตอร์อื่นก่อนที่จะสร้างอินสแตนซ์ของรูปภาพและโหลดรูปภาพ PSD จากดิกส์ภาพภายใน จากนั้นเราจะวนรอบแต่ละเลเยอร์ในคุณสมบัติเลเยอร์ จากนั้นเราจะแปลงบล็อกเป็นรูปภาพ TIFF โค้ดตัวอย่างต่อไปนี้แสดงถึงวิธีการแปลงเลเยอร์รูปภาพ PSD เป็นรูปภาพ TIFF

// 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 + @"output";
// Load a PSD image and Convert the image's layers to Tiff images.
using (PsdImage image = (PsdImage)Image.Load(sourceFile))
{
// Iterate through array of PSD layers
for (int i = 0; i < image.Layers.Length; i++)
{
// Get PSD layer.
Layer layer = image.Layers[i];
// Create an instance of TIFF Option class and Save the PSD layer as TIFF image
TiffOptions objTiff = new TiffOptions(TiffExpectedFormat.TiffDeflateRgb);
layer.Save("output" + i + "_out.tif", objTiff);
}
}

การแปลง CMYK PSD เป็น CMYK TIFF

ใช้ Aspose.PSD สำหรับ .NET, นักพัฒนาสามารถแปลงไฟล์ CMYK PSD เป็นรูปแบบ tiff CMYK บทความนี้จะแสดงวิธีการส่งออก/แปลงไฟล์ CMYK PSD เป็นรูปแบบ tiff CMYK ด้วย Aspose.PSD สำหรับ .NET คุณสามารถโหลดรูปภาพ PSD และจากนั้นคุณสามารถกำหนดคุณสมบัติต่าง ๆ โดยใช้ TiffOptions คลาส และบันทึกหรือส่งออกภาพ โค้ดตัวอย่างต่อไปนี้แสดงวิธีการบรรลุคุณสามารถทำเช่นนี้

// 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 + @"output.tiff";
using (Image image = Image.Load(sourceFile))
{
image.Save(destName, new TiffOptions(TiffExpectedFormat.TiffLzwCmyk));
}

ส่งออกรูปภาพ

นอกจากชุดคำสั่งประมวลรูปภาพที่หลากหลาย Aspose.PSD ยังมีคลาสที่พิเศษที่ให้การแปลงรูปภาพ PSD ไปยังรูปแบบอื่น ๆ การใช้ไลบรารี่นี้ การแปลงรูปภาพ PSD ง่ายและ intuitive ด้านล่างคือคลาสพิเศษสำหรับวัตถุนี้ใน ImageOptions namespace.

การส่งออกรูปภาพ PSD ด้วย Aspose.PSD สำหรับ .NET API ง่ายมาก ทุกสิ่งที่คุณต้องการก็คืออ็อบเจกต์ของคลาสที่เหมาะสมจาก ImageOptions namespace โดยใช้อ็อบเจกต์เหล่านี้ คุณสามารถส่งออกรูปภาพใด ๆ ที่สร้าง แก้ไข หรือเพียงแค่โหลดด้วย Aspose.PSD สำหรับ .NET ไปยังรูปแบบที่สนับสนุน

รวมรูปภาพ

ตัวอย่างนี้ใช้คลาส Graphics และแสดงวิธีการรวมรูปภาพสองหรือมากกว่าในรูปภาพเดียวกัน โดยให้มองเห็นการดำเนินการตัวอย่างเช่นตัวอย่างสร้างภาพ PsdImage ใหม่และวาดรูปภาพบนพื้นผิวแคนวาดโดยใช้เมธอดวาดรูปภาพที่เปิดเผยโดยคลาส Graphics ด้วยการใช้ Graphics class รูปภาพสองอันหรือมากกว่าสามารถรวมกันในรูปภาพเดียวกันได้อย่างไรว่ารูปภาพที่ได้มาจะดูเหมือนเป็นรูปภาพเดียวกันกับไม่มีช่องว่างระหว่างส่วนของรูปภาพและไม่มีหน้า ขนาดแคนวาจะตรงกับขนาดของรูปภาพผลลัพธ์ ต่อไปคือการสาธิตการแสดงวิธีใช้ วาดรูปภาพ ของคลาส Graphics เพื่อแสดงวิธีใช้รูปภาพหลายรูปภาพในรูปภาพเดียว

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Create an instance of PsdOptions and set its various properties
PsdOptions imageOptions = new PsdOptions();
// Create an instance of FileCreateSource and assign it to Source property
imageOptions.Source = new FileCreateSource(dataDir + "Two_images_result_out.psd", false);
// Create an instance of Image and define canvas size
using (var image = Image.Create(imageOptions, 600, 600))
{
// Create and initialize an instance of Graphics, Clear the image surface with white color and Draw Image
var graphics = new Graphics(image);
graphics.Clear(Color.White);
graphics.DrawImage(Image.Load(dataDir + "example1.psd"), 0, 0, 300, 600);
graphics.DrawImage(Image.Load(dataDir + "example2.psd"), 300, 0, 300, 600);
image.Save();
}

ขยายและครอบรูปภาพ

Aspose.PSD API ช่วยให้คุณสามารถขยายหรือครอบรูปภาพขณะกระบวนการแปลงรูปภาพ นักพัฒนาจำเป็นต้องสร้างสี่เหลี่ยมพื้นที่ด้วยตำแหน่งและความสูงขนาดสี่เหลี่ยม ตัวอย่าง X, Y และความกว้าง, ความสูงของสี่เหลี่ยมจะแสดงถึงการขยายหรือครอบภาพที่โหลดมาได้ หากต้องการขยายหรือครอบรูปภาพขณะกระบวนการแปลงรูปภาพ กระทำตามขั้นตอนต่อไปนี้:

  1. สร้างอินสแตนซ์ของคลาส RasterImage และโหลดรูปภาพที่มีอยู่
  2. สร้างอินสแตนซ์ของ ImageOption
  3. สร้างอินสแตนซ์ของคลาส Rectangle และเริ่มต้นค่า X, Y และ Width, Height ของสี่เหลี่ยม
  4. เรียกเมธอด Save ของคลาส RasterImage พร้อมกับการส่งออกชื่อไฟล์, คำสั่งทางรูปภาพและอ็อบเจกต์สี่เหลี่ยมเป็นพารามิเตอร์
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"example1.psd";
string destName = dataDir + @"jpeg_out.jpg";
// Load an image in an instance of Image and Setting for image data to be cashed
using (RasterImage rasterImage = (RasterImage)Image.Load(sourceFile))
{
rasterImage.CacheData();
// Create an instance of Rectangle class and define X,Y and Width, height of the rectangle, and Save output image
Rectangle destRect = new Rectangle { X = -200, Y = -200, Width = 300, Height = 300 };
rasterImage.Save(destName, new JpegOptions(), destRect);
}

อ่านและเขียนข้อมูล XMP กับรูปภาพ

XMP (Extensible Metadata Platform) เป็นมาตราฐานของ ISO XMP มาตรจวรทางข้อมูล รูปแบบการเชิงลึก, รูปแบบการเซรีไลซ์กระทำและคุณสมบัติหลักสำหรับกำหนดและประมวลข้อมูลแบบเซรีไลซ์ มันยังมีข้อบังคับสำหรับการฝังข