Работа с большими растровыми изображениями в Firemonkey вызывает ошибку

Я не могу создать растровое изображение шириной или высотой более 8192 пикселей. Это максимальный размер текстуры, определенный DirectX 10 и установленный в TCanvasD2D.GetAttribute (DefaultMaxTextureSize = 8192;). Проблема в том, что это не очень много. Многие фотографии больше этого размера. Есть ли способ обойти это или я просто принимаю, что это предел? Это не проблема в VCL, где ограничение составляет 65535. Я использую Delphi 10.4.

procedure TForm1.FormCreate(Sender: TObject);
var
  Bmp : TBitmap;
begin
  Bmp := TBitmap.Create;
  Bmp.SetSize(100, 8193);
end;

person XylemFlow    schedule 03.12.2020    source источник
comment
См.: stackoverflow.com/questions/51466186/   -  person Brian    schedule 03.12.2020
comment
Я не знаю, что вы собираетесь делать, но тем не менее, я скажу вам, чего я добился. Я разработал приложение для радиологии (16 бит/пиксель, монохромный), где мне нужно было обрабатывать действительно очень большие изображения (более 500 ГБ каждое). Для этой цели я загрузил изображение в GPU и написал код обработки на GPU. Это сложная задача. Мое приложение — VCL, но это не важно, поскольку вся обработка изображений выполняется в графическом процессоре, а также рендеринг.   -  person fpiette    schedule 03.12.2020
comment
Прежде чем отключить загрузку на GPU, я сделал эквивалентную обработку только на CPU. Изображение было обработано как большой массив в памяти. И было создано растровое изображение GDI, имеющее размер области просмотра на экране (обычно 1920x1200 с видимой частью, уменьшающейся по мере необходимости. При этом ограничивается только память).   -  person fpiette    schedule 03.12.2020
comment
Спасибо. В моем приложении есть своего рода окно выбора объекта. Все объекты рисуются на одном изображении внутри полосы прокрутки. Изображение увеличивается по мере добавления новых объектов. В какой-то момент растровое изображение становится слишком большим. Теперь я понял, что лучше было бы иметь каждый объект как отдельный объект изображения и просто размещать их в поле прокрутки, что должно решить проблему.   -  person XylemFlow    schedule 04.12.2020