Да, всё он наврал как обычно, не компилируется строка с Frame.Options - нет такого свойства у TGIFFrame, и похожего вроде нет.
Исправленный код от
perplexity:
uses
VCL.Graphics, Imaging, ImagingGIF, ImagingTypes;
procedure SaveGifWithTransparency(const SourceImages: array of TBitmap; const OutputFile: string);
var
GifImage: TGIFImage;
Frame: TGIFFrame;
GCExt: TGIFGraphicControlExtension;
i: Integer;
TransparentColor: TColor;
begin
TransparentColor := clWhite; // Замените на нужный цвет прозрачности
GifImage := TGIFImage.Create;
try
for i := 0 to High(SourceImages) do
begin
// Создаём кадр и копируем изображение
Frame := TGIFFrame.Create(GifImage);
Frame.Bitmap.Assign(SourceImages[i]);
// Добавляем расширение для управления прозрачностью
GCExt := TGIFGraphicControlExtension.Create(Frame);
GCExt.Transparent := True;
GCExt.TransparentColorIndex := GifImage.GlobalColorMap.AddColor(TransparentColor);
// Опционально: настройка задержки между кадрами (в сотых долях секунды)
GCExt.Delay := 10; // Пример: 0.1 секунды
end;
// Сохраняем результат
GifImage.SaveToFile(OutputFile);
finally
GifImage.Free;
end;
end;
Говорит, что "В коде, который вы предоставили, проблема возникает из-за использования несуществующего свойства Options у класса TGIFFrame в библиотеке Vampire Imaging Library. Согласно документации и примерам работы с GIF в Delphi, управление прозрачностью осуществляется через расширение графического контроля (TGIFGraphicControlExtension), а не напрямую через свойства фрейма."
xandry
Ну проверю, но вообще не думаю что он толком может помогать, я уже обращался к нему за советами.
Помогать может, просто порой ошибается и надо время тратить на составление запросов, просить документацию проверять, просить переделать указывая причину. Я даже практически уверен, что ваш платный программист будет использовать ИИ для этого, как и для других задач, которые вы хотите дать (поиск информации, чтение документации).
Если не будет, то это как минимум странно.
