
ไลบรารี Delphi สำหรับการทำให้ภาพ/บันทึกง่ายขึ้นการแปลงและการแปลง สามารถโหลด/บันทึก png, jpg, jxl, webp, avif, tiff, gif และ bmp สามารถรับภาพจากทรัพยากรที่แตกต่างกันได้: ไฟล์, สตรีม, HTTP, ImageList, ไอคอน Windows ที่เกี่ยวข้อง, ไอคอนไฟล์ที่ใช้งานได้ ฯลฯ ... หมุน, พลิก, สีเทาและการแปลงอื่น ๆ อีกมากมาย GDI+, Graphics32, OpenCV, Vampyre และ Libvips เครื่องยนต์
ได้โปรด "Star" โครงการนี้ใน GitHub! ไม่มีค่าใช้จ่ายใด ๆ นอกจากช่วยอ้างอิงรหัส 
หากคุณพบว่าโครงการนี้มีประโยชน์โปรดพิจารณาบริจาค
*ใหม่: Delphi 12 Athens Support
*ใหม่: เพิ่มเครื่องยนต์ libvips
*ใหม่: อิงอินเตอร์เฟส
*ใหม่: เพิ่มเครื่องยนต์ Vampyre Lib
*ใหม่: เพิ่มฟังก์ชั่นใหม่
*ใหม่: คลาส refactory
*ใหม่: การสนับสนุน Delphinus
คุณสามารถเลือกการรองรับ ImageFX เอ็นจิ้นที่มีอยู่อย่างน้อยหนึ่งรายการ เพิ่มหน่วยต่ำกว่าหนึ่งหน่วยขึ้นไปในประโยคการใช้งานของคุณ:
quick.imagefx.gdi: ใช้เครื่องยนต์ GDI+ ไม่ต้องการห้องสมุดภายนอก แต่ช้า
ห้องสมุดที่จำเป็น:
quick.imagefx.gr32: ใช้เครื่องยนต์กราฟิก 32 เพื่อหมุนเปลี่ยนปรับขนาด ฯลฯ
ห้องสมุดที่จำเป็น:
quick.imagefx.opencv: เครื่องยนต์ OpenCV ใช้งานปาร์ตี้ Delphi Warper สำหรับห้องสมุด Intel Open Vision มันเร็วและทรงพลังมาก ต้องการ OpenCV ภายนอก DLL ในโครงการของคุณ DIR
ห้องสมุดที่จำเป็น:
Quick.imagefx.vampyre: Vampyre Imaging Library Engine ใช้งานปาร์ตี้ Delphi Warper สำหรับห้องสมุดพื้นเมือง Vampyre Imaging เร็วและรองรับรูปแบบรูปภาพมากมาย
ห้องสมุดที่จำเป็น:
quick.imagefx.vips: libvips imaging library engine ใช้งานปาร์ตี้ Delphi Warper สำหรับห้องสมุด libvips เร็วเป็นพิเศษและรองรับรูปแบบรูปภาพมากมายเช่น WebP, AVIF, JXL ฯลฯ
ห้องสมุดที่จำเป็น:
สร้าง: สร้างอินสแตนซ์ของ ImageFx เพื่อโหลด/จัดการรูปภาพ
var
ImageFX : IImageFX;
begin
ImageFX := TImageFXGDI // You can create as TImageFXGDI, TImageFXGR32, TImageFXOpenCV or TImageFXVampyre to use different graphic engines
ImageFX.LoadFromFile( ' .test.jpg ' );
ImageFX.Rotate90;
ImageFX.SaveAsPNG( ' .Test.png ' );
end ;โหลด/บันทึก: สามารถโหลด/บันทึก PNG, JPG, GIF และ BMP และรับภาพจากทรัพยากรที่แตกต่างกันเช่นไฟล์, สตรีม, HTTP, ImageList, ไอคอน Windows ที่เกี่ยวข้อง, ไอคอนไฟล์ที่ใช้งานได้ ฯลฯ ...
// Load image from files like jpg, gif, png and bmp
ImageFX.LoadFromFile( ' .file.jpg ' );
// Load/Save image from/to a memorystream, filestream, etc...
ImageFX.LoadFromStream(MyStream);
ImageFX.SaveToStream(MyStream,ifJPG);
// Load image from an icon class
ImageFX.LoadFromIcon(MyIcon);
// Load image from an icon file
ImageFX.LoadFromFileIcon( ' .file.ico ' );
// Get image associated in windows with this type of extension
ImageFX.LoadFromFileExtension( ' .file.xls ' ,True);
// Load from exe resource
ImageFX.LoadFromResource( ' Main.ico ' );
// Get image from a http link
ImageFX.LoadFromHTTP( ' http://www.mysite.com/file.jpg ' ,ReturnHTTPCode,True);
// Load/Save from string
ImageFX.LoadFromString(MyImageString);
ImageFX.SaveToString(MyImageString);ข้อมูลภาพ: รับความละเอียดอัตราส่วนภาพของภาพ
ImageFX.GetResolution(x,y)
ImageFX.AspectRatioStr // aspect ratio (4:3,16:9)
ImageFX.IsGrayการปรับขนาดภาพ:
// Resize image to fit max bounds of 500x300 and fills rest of target size with a border black color
ImageFX.ResizeOptions.BorderColor := clBlack;
ImageFX.Resize( 500 , 300 , rmFitToBounds, [rfCenter], rmLinear);
// Same image resize alternative/advanced mode
ImageFX.ResizeOptions.ResamplerMode := rmLinear;
ImageFX.ResizeOptions.ResizeMode := rmFitToBounds;
ImageFX.ResizeOptions.Center := True;
ImageFX.ResizeOptions.FillBorders := True;
ImageFX.ResizeOptions.BorderColor := clBlack;
ImageFX.Resize( 500 , 300 );ResizeOptions:
Nomagnify: ถ้าจริงไม่ปรับขนาดภาพถ้าเล็กที่สุดกว่าขนาดใหม่ที่เฉพาะเจาะจง
ResizeMode: ปรับขนาดอัลกอริทึมเพื่อคำนวณขนาดสุดท้ายที่ต้องการ:
Resamplermode: ปรับขนาดอัลกอริทึมที่จะใช้:
ศูนย์: ศูนย์ภาพ
Fillborders: เติมเส้นขอบของภาพที่ปรับขนาดในสี่เหลี่ยมผืนผ้าปลายทางถ้ามีขนาดเล็กลง
BorderColor: สีของเส้นขอบเติม
การแปลง: ใช้การหมุน, พลิก, เอฟเฟกต์สแกนไลน์, สดใสและการเปลี่ยนแปลงอื่น ๆ กับภาพของคุณ
// Rotate image 90 degrees
ImageFX.Rotate90;
// Rotate image 45 degrees
ImageFX.RotateAngle( 45 );
// Convert to grayscale
ImageFX.GrayScale;
// Flip image horizontally
ImageFX.FlipX;
// Increase bright by 50%
ImageFX.Lighten( 50 );
// Change color of a pixel
PixInfo.R := Random( 255 ); // R
PixInfo.G := Random( 255 ); // G
PixInfo.B := Random( 120 ); // B
PixInfo.A := 200 ; // Alpha
imageFX.Pixel[x,y] := PixInfo;
// Draw an overlay image over current image with 50% transparency
ImageFX.DrawCentered(pngimage, 0.5 );การแปลงรูปแบบ: สามารถแปลงระหว่างรูปแบบภาพ
ImageFX.LoadFromFile( ' .myfile.jpg ' );
ImageFX.SaveAsPNG( ' .myfile.png ' );ฟังก์ชั่นเกือบทั้งหมดกลับมาเรียนด้วยตนเองดังนั้นคุณสามารถโซ่การกระทำและเอฟเฟกต์มากมายเช่นนี้:
// Rotate 90 degrees and flip horizontally, convert to grayscale and save to a png file.
ImageFX.Rotate90.FlipX.GrayScale.SaveToPNG( ' .myfile.png ' );
// Load from file, rotate180, resize to 100x100 and assign to a TImage.
MyImage.Picture.Asssign(ImageFX.LoadFromFile( ' .myfile.jpg ' ).Rotate180.Resize( 100 , 100 ).AsBitmap);คุณต้องการเรียนรู้ Delphi หรือพัฒนาทักษะของคุณหรือไม่? LearnDelphi.org