Мортиролог общения с Лазарусом
Nov. 19th, 2021 09:19 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Мне нужно изменять размеры 24-битного изображения. Стандартный метод CopyRect делает это слишком грубо, посмотрим что у нас есть в Online Package Manager -
1) ATImageBox, This is TScrollBox with embedded TImage.
Тот же метод изменения размера изображения, плюс глюки при перетаскивании TImage в егонном TScrollboх.
2) Vampyre Imaging Library is cross-platform native Object Pascal (Delphi and Free Pascal) image loading, saving, and manipulation library.
Пример -
вываливается с сообщением "File not open"
3) BGRABitmap is a set of units designed to modify and create images with transparency
Прекрано масштабирует, но мне нужны 24-битные картинки, а он работает с 32-х битными. Как их переводить - хз, документация убога.
4) LazRGBGraphics .. features: ... drawing and stretchdrawing to TCanvas ... rotating, stretching...
Очень обрадовался, увидев ф-ю
procedure StretchSmooth(AWidth, AHeight: Integer; Method: TSmoothMethod);
ВОТ ОНА ВСЯ В МОДУЛЕ -
БЛЯДЬ.
5) Подумал, что раз на гладкое масштабирование в сторонних компонентах настолько забито, то может оно уже есть? Да, оказалось, что - "Интерполяция, которая обеспечивает Windows-подобный StretchDraw с очень резким результатом (противоположным сглаживанию), может быть добавлена с помощью: TLazCanvas.Interpolation: = TFPSharpInterpolation.Create;
В модуле fpcanvas доступны другие [способы] интерполяции. " (с)
https://wiki.freepascal.org/Developing_with_Graphics/.
Ну, пришлось лезть в модуль за "другие [способы]", т.к. куча бессмысленного говна, называемая сгенерированной документацыей (как? зачем? откуда?) - https://lazarus-ccr.sourceforge.io/docs/ - помочь ничем не смогла.
В общем, как говорится, 20% оставшейся работы занимают 80% оставшегося времени, а в мире СПО написание документацыи занимает 1% оставшейся работы, и поэтому в мире СПО хорошо если все работает на 20%
1) ATImageBox, This is TScrollBox with embedded TImage.
Тот же метод изменения размера изображения, плюс глюки при перетаскивании TImage в егонном TScrollboх.
2) Vampyre Imaging Library is cross-platform native Object Pascal (Delphi and Free Pascal) image loading, saving, and manipulation library.
Пример -
var Img: TImageData; begin // call this before using any TImageData record InitImage(Img); // load tigers from file LoadImageFromFile('C:/Tigers.jpg', Img); //write some image info WriteLn('Mighty tigers have resolution ', Img.Width, 'x', Img.Height, ' and occupy ', Img.Size, ' bytes of your memory.'); // memory occupied by image is freed FreeImage(Img); end;
вываливается с сообщением "File not open"
3) BGRABitmap is a set of units designed to modify and create images with transparency
Прекрано масштабирует, но мне нужны 24-битные картинки, а он работает с 32-х битными. Как их переводить - хз, документация убога.
4) LazRGBGraphics .. features: ... drawing and stretchdrawing to TCanvas ... rotating, stretching...
Очень обрадовался, увидев ф-ю
procedure StretchSmooth(AWidth, AHeight: Integer; Method: TSmoothMethod);
ВОТ ОНА ВСЯ В МОДУЛЕ -
procedure TRGB32Bitmap.StretchSmooth(AWidth, AHeight: Integer; Method: TSmoothMethod); begin // end;
БЛЯДЬ.
5) Подумал, что раз на гладкое масштабирование в сторонних компонентах настолько забито, то может оно уже есть? Да, оказалось, что - "Интерполяция, которая обеспечивает Windows-подобный StretchDraw с очень резким результатом (противоположным сглаживанию), может быть добавлена с помощью: TLazCanvas.Interpolation: = TFPSharpInterpolation.Create;
В модуле fpcanvas доступны другие [способы] интерполяции. " (с)
https://wiki.freepascal.org/Developing_with_Graphics/.
Ну, пришлось лезть в модуль за "другие [способы]", т.к. куча бессмысленного говна, называемая сгенерированной документацыей (как? зачем? откуда?) - https://lazarus-ccr.sourceforge.io/docs/ - помочь ничем не смогла.
В общем, как говорится, 20% оставшейся работы занимают 80% оставшегося времени, а в мире СПО написание документацыи занимает 1% оставшейся работы, и поэтому в мире СПО хорошо если все работает на 20%