Меня попросили исправить проблему (не связанную с этим вопросом) в устаревшей программе Delphi. После исправления некоторых проблем с отсутствующими компонентами, я застрял с некоторыми функциями GDI Plus, которые мешают мне компилировать программу. Одна из функций, где это используется:
function TDownLoadItem.LoadRawBitmapFromStream(var bm: TBitmap): Boolean;
var
image: TGPBitmap;
begin
Result := False;
if Content.Size = 0 then
exit;
// NOTE: Content is a TMemoryStream, declared globally.
image := GDIPlusHelper.LoadBitmapFromStream(Content); // <== This is where the problem is....
try
bm.Width := image.GetWidth;
bm.Height := image.GetHeight;
with TGPGraphics.Create(bm.Canvas.Handle) do
try
DrawImage(image, 0, 0, image.GetWidth, image.GetHeight);
Result := True;
finally
Free;
end;
finally
image.Free;
end;
end;
Я думаю (не уверен), что последняя использованная версия Delphi была 2006, я на Delphi Rio 10.3.
В сети Мне удалось найти GDI + 1.2, но это не решает проблему. Процедура LoadBitmapFromStream не завершается в этих библиотеках. GDIPlusHelper был переименован в GDIPlusHelpers, и большая часть кода изменилась с классов на интерфейсы. Я подозреваю, что использовались более старые версии библиотек GDI Plus, но я не могу их найти.
Переработка кода была бы слишком сложной, так как требовало бы, чтобы Content был IStream вместо TMemoryStream. Кроме того, простое использование TBitmap также невозможно, так как другой код (не показан) использует функциональность, указанную c для TGPBitmap (например, RotateFlip).
Есть предложения, как это исправить? Заранее спасибо!