
Bibliothèque Delphi pour simplifier la charge d'image / la sauvegarde, la conversion et la transformation. Peut charger / enregistrer PNG, JPG, JXL, WebP, AVIF, TIFF, GIF et BMP. Peut obtenir l'image à partir de différentes ressources: fichier, stream, http, imagelist, icône Windows associée, icône de fichier exécutable, etc ... Rotation, flip, niveaux de gris et de nombreuses autres transformations. Les moteurs GDI +, Graphics32, OpenCV, Vampyre et Libvips sont disponibles.
S'il vous plaît "Star" ce projet dans GitHub! Cela ne coûte que des aides à référencer le code. 
Si vous trouvez ce projet utile, veuillez envisager de faire un don.
* Nouveau: Support de Delphi 12 Athènes
* Nouveau: moteur libvips ajouté
* Nouveau: interface basée
* Nouveau: moteur Vampyre Lib ajouté
* Nouveau: nouvelles fonctions ajoutées
* Nouveau: cours de réfactoire
* Nouveau: support Delphinus
Vous pouvez sélectionner un ou plusieurs des supports ImageFX de moteurs disponibles. Ajoutez un ou plusieurs des unités ci-dessous à votre clause d'utilisation:
Quick.imagefx.gdi: utilise le moteur GDI +. Aucun besoin de bibliothèques externes mais c'est lent.
Bibliothèques nécessaires:
Quick.imagefx.gr32: utilise le moteur Graphics32 pour tourner, transformer, redimensionner, etc.
Bibliothèques nécessaires:
Quick.imagefx.OpenCV: OpenCV Engine. Utilise une fête de la fête Delphi Warper pour la bibliothèque Intel Open Vision. C'est très rapide et puissant. Besoin de DLL externes OpenCV dans votre projet DIR.
Bibliothèques nécessaires:
Quick.imagefx.vampyre: moteur de bibliothèque d'imagerie Vampyre. Utilise une fête de la fête de Delphi Warper pour la bibliothèque native d'imagerie Vampyre. Rapide et prend en charge de nombreux formats d'image.
Bibliothèques nécessaires:
Quick.imagefx.vips: Libvips Imaging Library Engine. Utilise une bibliothèque de Delphi Warper pour la bibliothèque Libvips. Ultra Fast et prend en charge de nombreux formats d'images comme WebP, AVIF, JXL, etc.
Bibliothèques nécessaires:
Créer: créer une instance d'imageFX pour charger / manipuler des images.
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 ;Chargement / Enregistrer: peut charger / enregistrer PNG, JPG, GIF et BMP et obtenir l'image à partir de différentes ressources comme le fichier, le flux, le HTTP, l'imageliste, l'icône Windows associée, l'icône de fichier exécutable, etc ...
// 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);Informations sur l'image: Obtenez la résolution, le rapport d'aspect d'une image.
ImageFX.GetResolution(x,y)
ImageFX.AspectRatioStr // aspect ratio (4:3,16:9)
ImageFX.IsGrayRedimensionnement de l'image:
// 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 );Redimensiptions:
Nomagnify: Si vrai, ne redimensionne pas l'image si la plus petite taille est plus petite.
Resizemode: Resize Algorithmes pour calculer la taille finale souhaitée:
ResamplerMode: Redimensionner les algorithmes à appliquer:
Centre: Image des centres
FILLBORDERS: FILLER BORDERS d'une image à l'échelle dans le rectangle de destination s'il est plus petit.
BorderColor: Couleur des bordures de remplissage.
Transforts: appliquez des rotations, des flips, des effets de ligne de balayage, des transformations brillantes et autres sur vos images.
// 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 );Conversions de format: peut convertir entre les formats d'image.
ImageFX.LoadFromFile( ' .myfile.jpg ' );
ImageFX.SaveAsPNG( ' .myfile.png ' );Presque toutes les fonctions renvoient l'auto-classe, vous pouvez donc enchaîner de nombreuses actions et effets comme ceci:
// 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);Voulez-vous apprendre Delphi ou améliorer vos compétences? Learndelphi.org