В Delphi 7 у меня есть библиотека, которая использует компонент TCanvas для вывода некоторой информации. Полученное изображение составляет около 4800 * 6000 пикселей, и я хотел бы распечатать его и сохранить как .jpeg
.
Чтобы добиться этого, я создал TBitmap и передал его Canvas в качестве параметра библиотеке, а затем назначил растровое изображение jpeg. Очевидно, это занимает слишком много памяти, потому что я получаю исключение при попытке установить ширину и высоту растрового изображения, говоря: «Недостаточно памяти для обработки этой команды».
// output to printer
Printer.BeginDoc();
doPrint(Printer.Canvas);
Printer.EndDoc();
// output in bmp.Canvas
bmp := TBitmap.Create;
bmp.Width := Printer.PageWidth;
bmp.Height := Printer.PageHeight; // <- BAM! Exception!
doPrint(bmp.Canvas);
// save as jpeg
jpg := TJPEGImage.Create;
jpg.Assign(bmp);
jpg.SaveToFile('...');
// free
bmp.Free();
jpg.Free();
Что я делаю не так? Могу ли я сохранить Printer.Canvas непосредственно как .jpeg
файл?
Редактировать: Обновлена аппроксимация размера изображения с 2000 * 2000 до 4800 *6000* 1010 *