
Perpustakaan Delphi untuk menyederhanakan pemuatan gambar/simpan, konversi, dan transformasi. Dapat memuat/menyimpan PNG, JPG, JXL, Webp, Avif, TIFF, GIF dan BMP. Bisa mendapatkan gambar dari berbagai sumber daya: File, Stream, HTTP, ImageList, ikon Windows terkait, ikon file yang dapat dieksekusi, dll ... Rotate, Flip, Grayscale dan banyak transformasi lainnya. GDI+, Graphics32, Opencv, Vampyre dan Libvips Engine tersedia.
Tolong "Bintang" proyek ini di GitHub! Tidak ada biaya apa pun selain membantu merujuk kode. 
Jika Anda menemukan proyek ini bermanfaat, pertimbangkan untuk memberikan sumbangan.
*Baru: Dukungan Delphi 12 Athena
*Baru: mesin libvips ditambahkan
*BARU: Berbasis Antarmuka
*Baru: mesin vampyre lib ditambahkan
*BARU: Fungsi baru ditambahkan
*BARU: Kelas refactory
*Baru: Dukungan Delphinus
Anda dapat memilih satu atau lebih dari mesin yang tersedia Dukungan ImageFX. Tambahkan satu atau lebih unit di bawah ini ke klausa penggunaan Anda:
Quick.imagefx.gdi: menggunakan mesin GDI+. Tidak perlu perpustakaan eksternal tetapi lambat.
Perpustakaan yang dibutuhkan:
Quick.imagefx.gr32: menggunakan mesin graphics32 untuk memutar, mentransformasikan, mengubah ukuran, dll
Perpustakaan yang dibutuhkan:
Quick.imagefx.opencv: engine opencv. Menggunakan Pesta Thrid Delphi Warper untuk Intel Open Vision Library. Ini sangat cepat dan kuat. Membutuhkan opencv eksternal DLL di Dir proyek Anda.
Perpustakaan yang dibutuhkan:
Quick.imagefx.vampyre: Mesin Perpustakaan Pencitraan Vampyre. Menggunakan Pesta Thrid Delphi Warper untuk Perpustakaan Asli Pencitraan Vampyre. Cepat dan mendukung banyak format gambar.
Perpustakaan yang dibutuhkan:
Quick.imagefx.vips: Libvips Imaging Library Engine. Menggunakan Pesta Thrid Delphi Warper untuk Perpustakaan Libvips. Ultra cepat dan mendukung banyak format gambar seperti Webp, Avif, JXL, dll.
Perpustakaan yang dibutuhkan:
Buat: Buat instance Imagefx untuk memuat/memanipulasi gambar.
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 ;Load/Save: Dapat memuat/menyimpan PNG, JPG, GIF dan BMP dan mendapatkan gambar dari berbagai sumber daya seperti file, stream, http, ImageList, ikon Windows terkait, ikon file yang dapat dieksekusi, dll ...
// 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);Info gambar: Dapatkan resolusi, rasio aspek suatu gambar.
ImageFX.GetResolution(x,y)
ImageFX.AspectRatioStr // aspect ratio (4:3,16:9)
ImageFX.IsGrayUbah Ukuran Gambar:
// 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 );Penyusunan ulang:
Nomagnify: Jika benar tidak mengubah ukuran gambar jika terkecil dari ukuran baru yang ditentukan.
RESIZEMODE: Ubah Ulang Algoritma untuk Menghitung Ukuran Akhir yang Diinginkan:
Resamplermode: mengubah ukuran algoritma yang akan diterapkan:
Pusat: Pusat Gambar
FillBorders: Isi perbatasan gambar berskala di persegi panjang tujuan jika lebih kecil.
BorderColor: Warna perbatasan pengisian.
Transformasi: Terapkan rotasi, flips, efek pemindaian, transformasi Bright dan lainnya ke gambar Anda.
// 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 );Format Konversi: Dapat mengonversi antar format gambar.
ImageFX.LoadFromFile( ' .myfile.jpg ' );
ImageFX.SaveAsPNG( ' .myfile.png ' );Hampir semua fungsi mengembalikan kelas diri, sehingga Anda dapat rantai banyak tindakan dan efek seperti ini:
// 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);Apakah Anda ingin belajar Delphi atau meningkatkan keterampilan Anda? learndelphi.org