ครอบตัดและปรับขนาดภาพ JPEG โดยใช้ C#

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

หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:

C# Imaging API เพื่อครอบตัดและปรับขนาด JPEG

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

PM> Install-Package Aspose.Imaging

ครอบตัดรูปภาพ JPEG โดยใช้ C#

เราสามารถครอบตัดรูปภาพ JPEG/JPG จากทุกด้านไปยังกึ่งกลางของรูปภาพได้อย่างง่ายดาย เพื่อจุดประสงค์นี้ คลาส RasterImage ให้วิธีการครอบตัด (Int32, Int32, Int32, Int32) ที่ครอบตัดรูปภาพด้วยค่าการเปลี่ยนแปลงที่ระบุ ใช้ค่าการเลื่อนซ้าย ขวา บน และล่างเป็นอาร์กิวเมนต์เพื่อครอบตัดขอบเขตรูปภาพ เราสามารถครอบตัดรูปภาพโดยใช้วิธีครอบตัดแบบ Shift โดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก โหลดรูปภาพ JPG ที่อินพุตโดยใช้คลาส RasterImage
  2. จากนั้น แคชรูปภาพโดยใช้เมธอด CacheData
  3. หลังจากนั้นให้เรียกเมธอด Crop() โดยมีค่า shift เป็นอาร์กิวเมนต์
  4. สุดท้ายให้เรียกใช้เมธอด Save() โดยมีพาธของไฟล์เอาต์พุตเป็นอาร์กิวเมนต์เพื่อบันทึกไฟล์ภาพที่ครอบตัด

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการครอบตัดรูปภาพ JPEG โดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการครอบตัดรูปภาพ JPG โดยใช้วิธีครอบตัดตามกะ
// โหลดรูปภาพที่มีอยู่ลงในอินสแตนซ์ของคลาส RasterImage
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");

// ก่อนที่จะครอบตัด รูปภาพควรถูกแคชไว้เพื่อประสิทธิภาพที่ดีขึ้น
if (!rasterImage.IsCached)
{
    rasterImage.CacheData();
}

// กำหนดค่ากะสำหรับทั้งสี่ด้าน
int leftShift = 30;
int rightShift = 30;
int topShift = 30;
int bottomShift = 30;

// ขึ้นอยู่กับค่าการเปลี่ยนแปลง ให้ใช้การครอบตัดกับรูปภาพ 
// วิธีการครอบตัดจะเลื่อนขอบเขตรูปภาพไปทางกึ่งกลางของรูปภาพ
rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

// บันทึกภาพที่ครอบตัด
rasterImage.Save(@"C:\Files\images\cropped_out.jpg");
ครอบตัดรูปภาพ JPEG โดยใช้ C#

ครอบตัดรูปภาพ JPEG โดยใช้ C#

ครอบตัดรูปภาพให้มีขนาดเฉพาะโดยใช้ C#

คลาส RasterImage ยังมีวิธีการครอบตัด (สี่เหลี่ยมผืนผ้า) ที่โอเวอร์โหลดซึ่งจะครอบตัดพื้นที่เฉพาะของรูปภาพตามขนาดที่ระบุ ใช้อินสแตนซ์ของคลาส Rectangle เป็นอาร์กิวเมนต์ เราสามารถครอบตัดรูปภาพให้มีขนาดที่ระบุได้โดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก โหลดรูปภาพ JPG ที่อินพุตโดยใช้คลาส RasterImage
  2. จากนั้น แคชรูปภาพโดยใช้เมธอด CacheData
  3. จากนั้นเริ่มต้นวัตถุคลาสสี่เหลี่ยมผืนผ้าด้วยตำแหน่งและขนาดที่ระบุ
  4. หลังจากนั้น ให้เรียกเมธอด Crop() โดยมีอ็อบเจ็กต์สี่เหลี่ยมผืนผ้าที่สร้างขึ้นเป็นอาร์กิวเมนต์
  5. สุดท้าย ให้เรียกเมธอด Save() โดยมีพาธของไฟล์เอาต์พุตเป็นอาร์กิวเมนต์เพื่อบันทึกไฟล์ภาพที่ครอบตัด .

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการครอบตัดรูปภาพ JPEG ให้มีขนาดเฉพาะโดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการครอบตัดรูปภาพ JPG โดยใช้วิธีครอบตัดตามสี่เหลี่ยมผืนผ้า
// โหลดรูปภาพที่มีอยู่ลงในอินสแตนซ์ของคลาส RasterImage
RasterImage rasterImage = (RasterImage)Image.Load(@"C:\Files\images\aspose_logo.jpg");

// ก่อนที่จะครอบตัด รูปภาพควรถูกแคชไว้เพื่อประสิทธิภาพที่ดีขึ้น
if (!rasterImage.IsCached)
{
    rasterImage.CacheData();
}

// สร้างอินสแตนซ์ของคลาสสี่เหลี่ยมผืนผ้าด้วยขนาดที่ต้องการ
Rectangle rectangle = new Rectangle(35, 35, 580, 240);

// ดำเนินการครอบตัดบนวัตถุของคลาสสี่เหลี่ยมผืนผ้า
rasterImage.Crop(rectangle);

// บันทึกภาพที่ครอบตัด
rasterImage.Save(@"C:\Files\images\CroppingByRectangle_out.jpg");
ครอบตัดรูปภาพในขนาดเฉพาะโดยใช้ C#

ครอบตัดรูปภาพเป็นขนาดเฉพาะโดยใช้ C#

ปรับขนาดรูปภาพ JPEG ใน C#

คลาส Image มีเมธอด Resize() เพื่อปรับขนาดรูปภาพ เราสามารถปรับขนาดภาพ JPEG ได้โดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก โหลดรูปภาพ JPG ที่อินพุตโดยใช้คลาส Image
  2. จากนั้น เรียกเมธอด Resize(int32, int32) โดยมีความกว้างและความสูงที่ต้องการเป็นอาร์กิวเมนต์
  3. สุดท้าย ให้เรียกเมธอด Save() โดยมีพาธของไฟล์เอาต์พุตเป็นอาร์กิวเมนต์เพื่อบันทึกรูปภาพที่ปรับขนาดแล้ว .

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการปรับขนาดรูปภาพ JPEG โดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการครอบตัดรูปภาพ JPG โดยใช้วิธีครอบตัดตามสี่เหลี่ยมผืนผ้า
// โหลดรูปภาพที่มีอยู่
Image image = Image.Load(@"C:\Files\images\aspose_logo.jpg");

// ความกว้างและความสูงใหม่
image.Resize(300, 100);

// บันทึกภาพที่ปรับขนาดแล้ว
image.Save(@"C:\Files\images\SimpleResizing_out.jpg");
ปรับขนาดรูปภาพ JPEG ใน C#

ปรับขนาดรูปภาพ JPEG ใน C#

ปรับขนาดรูปภาพ JPEG ตามสัดส่วนใน C#

เราอาจได้รับภาพที่ยืดออกเมื่อเราปรับขนาดโดยมีความสูงและความกว้างคงที่ เราสามารถใช้การปรับขนาดตามสัดส่วนเพื่อหลีกเลี่ยงภาพที่ยืดออก เพื่อจุดประสงค์นี้ คลาส Image จัดให้มีวิธี ResizeWidthProportional(Int32) และ ResizeHeightProportionally(Int32) โปรดปฏิบัติตามขั้นตอนด้านล่างเพื่อปรับขนาดรูปภาพตามสัดส่วนความกว้างและความสูง

  1. ขั้นแรก โหลดรูปภาพ JPG ที่อินพุตโดยใช้คลาส Image
  2. จากนั้น เรียกเมธอด Image.ResizeWidthProportionally(Int32) ด้วยความกว้างใหม่เป็นอาร์กิวเมนต์
  3. หลังจากนั้น ให้เรียกใช้เมธอด Image.ResizeHeightProportionally(Int32) ด้วยความสูงใหม่เป็นอาร์กิวเมนต์
  4. สุดท้าย ให้เรียกเมธอด Save() โดยมีพาธของไฟล์เอาต์พุตเป็นอาร์กิวเมนต์เพื่อบันทึกรูปภาพที่ปรับขนาดแล้ว .

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการปรับขนาดรูปภาพ JPEG ตามสัดส่วนโดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการครอบตัดรูปภาพ JPG โดยใช้วิธีครอบตัดตามสี่เหลี่ยมผืนผ้า
// โหลดรูปภาพที่มีอยู่
Image image = Image.Load(@"C:\Files\images\sample.jpg");

// ความกว้าง
int newความกว้าง = image.ความกว้าง / 2;
image.Resizeความกว้างProportionally(newความกว้าง);

// ความสูง
int newความสูง = image.ความสูง / 2;
image.ResizeความสูงProportionally(newความสูง);

// กำหนดตัวเลือกการบันทึก
JpegOptions saveOptions = new JpegOptions();
saveOptions.Quality = 100;

// บันทึกภาพ
image.Save(@"C:\Files\images\sample_out.jpg", saveOptions);

รับใบอนุญาตฟรี

โปรดลองใช้ API โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธี:

  • ครอบตัดรูปภาพ JPEG ใน C#;
  • ครอบตัดรูปภาพให้มีขนาดเฉพาะ
  • ปรับขนาดภาพ JPEG โดยทางโปรแกรม
  • ปรับขนาดภาพ JPEG ตามสัดส่วน

นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Imaging for .NET API ได้โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรั่ม

ดูสิ่งนี้ด้วย