wunderwaffe: тупят другие (karliki)
[personal profile] wunderwaffe
Мне нужно изменять размеры 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.
Пример -
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%

Profile

wunderwaffe: рабочее (Default)
доктор Вандершпигель

April 2022

S M T W T F S
     12
34567 89
1011 12 1314 1516
17181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2025 09:40 pm
Powered by Dreamwidth Studios