
Библиотека Delphi для упрощения загрузки/сохранения изображения, преобразования и преобразования. Может загрузить/сохранить PNG, JPG, JXL, WEBP, AVIF, TIFF, GIF и BMP. Может получить изображение из разных ресурсов: файл, потока, http, Imagelist, Associated Windows значок, значок исполняемого файла и т. Д. Поверните, Flip, Greyscale и многие другие преобразования. GDI+, Graphics32, OpenCV, Vampyre и Libvips доступны.
Пожалуйста, «звезда» этот проект в GitHub! Это ничего не стоит, кроме как помогает ссылаться на код. 
Если вы найдете этот проект полезным, пожалуйста, рассмотрите возможность сделать пожертвование.
*Новое: Delphi 12 Athens Support
*НОВЫЕ: Двигатель Libvips добавлен
*Новое: на основе интерфейса
*НОВЫЙ: VAMPYRE LIB Двигатель добавлен
*Новые: добавлены новые функции
*Новое: рефакторные занятия
*Новое: Delphinus поддержка
Вы можете выбрать одну или несколько доступных поддержков ImageFX. Добавьте один или несколько единиц ниже в пункт вашего использования:
Quick.imagefx.gdi: использует двигатель GDI+. Нет необходимости внешних библиотек, но это медленно.
Необходимы библиотеки:
Quick.imagefx.gr32: использует двигатель Graphics32 для вращения, преобразования, изменения размера и т. Д.
Необходимы библиотеки:
Quick.imagefx.opencv: Engine OpenCV. Использует Thrid Party Delphi Warper для библиотеки Intel Open Vision. Это очень быстро и мощно. Требует внешнего DLL OpenCV в вашем проекте.
Необходимы библиотеки:
Quick.imagefx.vampyre: Двигатель библиотеки библиотеки вампира. Использует Thrid Party Delphi Warper для нативной библиотеки для вампиров. Быстро и поддерживает многие форматы изображений.
Необходимы библиотеки:
Quick.imagefx.vips: Libvips Imaging Библиотечный двигатель. Использует Thrid Party Delphi Warper для библиотеки Libvips. Ultra Fast и поддерживает многие форматы изображений, такие как 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, Associated 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