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に更新しました