Difference between revisions of "Print Bitmap/ru"
From Free Pascal wiki
Jump to navigationJump to search (Created page with "{{Print_Bitmap}} == Как отправить изображение на принтер == <syntaxhighlight> // uses Printers; // необходимо подключить...") |
|||
Line 23: | Line 23: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
+ | |||
+ | '''Печать jpeg картинки с масштабированием через Bitmap на лист А4''' | ||
+ | <syntaxhighlight> | ||
+ | // uses Printers; // необходимо подключить модуль | ||
+ | procedure PrintImage(Image: TImage); | ||
+ | var | ||
+ | TempImageBMP: Graphics.TBitmap; | ||
+ | TempImageJPEG: TImage; | ||
+ | ScaleX, ScaleY: Double; | ||
+ | RectLeft,RectTop,RectRight,RectBottom: Integer; | ||
+ | begin | ||
+ | |||
+ | TempImageBMP := Graphics.TBitmap.Create; | ||
+ | TempImageBMP.Assign(Image.Picture.Graphic); | ||
+ | TempImageJPEG := TImage.Create(Self); | ||
+ | TempImageJPEG.Picture.Bitmap := TempImageBMP; | ||
+ | |||
+ | Printer.BeginDoc; | ||
+ | // Расчет соотношение сторон | ||
+ | ScaleX := Printer.PageWidth / TempImageJPEG.Picture.Bitmap.Width; | ||
+ | ScaleY := Printer.PageHeight / TempImageJPEG.Picture.Bitmap.Height; | ||
+ | |||
+ | RectLeft:=0; | ||
+ | RectTop:=0; | ||
+ | RectRight := trunc(TempImageJPEG.Picture.Bitmap.Width * scaleX); | ||
+ | RectBottom := trunc(TempImageJPEG.Picture.Bitmap.Height * scaleY); | ||
+ | Printer.Canvas.StretchDraw( | ||
+ | Rect(RectLeft,RectTop,RectRight,RectBottom), | ||
+ | TempImageJPEG.Picture.Bitmap); | ||
+ | Printer.EndDoc; | ||
+ | |||
+ | TempImageBMP.Free; | ||
+ | TempImageJPEG.Free; | ||
+ | end; | ||
+ | </syntaxhighlight> |
Revision as of 12:56, 7 February 2019
│
English (en) │
français (fr) │
русский (ru) │
Как отправить изображение на принтер
// uses Printers; // необходимо подключить модуль
var
Scale :LongInt;
begin
with Printer do
begin
BeginDoc;
Scale := Min(
Printer.PageWidth div Image1.Picture.Bitmap.Width,
Printer.PageHeight div Image1.Picture.Bitmap.Height);
Printer.Canvas.StretchDraw(
Rect(0, 0, Image1.Picture.Bitmap.Width*Scale, Image1.Picture.Bitmap.Height*Scale),
Image1.Picture.Bitmap);
EndDoc;
end;
end;
Печать jpeg картинки с масштабированием через Bitmap на лист А4
// uses Printers; // необходимо подключить модуль
procedure PrintImage(Image: TImage);
var
TempImageBMP: Graphics.TBitmap;
TempImageJPEG: TImage;
ScaleX, ScaleY: Double;
RectLeft,RectTop,RectRight,RectBottom: Integer;
begin
TempImageBMP := Graphics.TBitmap.Create;
TempImageBMP.Assign(Image.Picture.Graphic);
TempImageJPEG := TImage.Create(Self);
TempImageJPEG.Picture.Bitmap := TempImageBMP;
Printer.BeginDoc;
// Расчет соотношение сторон
ScaleX := Printer.PageWidth / TempImageJPEG.Picture.Bitmap.Width;
ScaleY := Printer.PageHeight / TempImageJPEG.Picture.Bitmap.Height;
RectLeft:=0;
RectTop:=0;
RectRight := trunc(TempImageJPEG.Picture.Bitmap.Width * scaleX);
RectBottom := trunc(TempImageJPEG.Picture.Bitmap.Height * scaleY);
Printer.Canvas.StretchDraw(
Rect(RectLeft,RectTop,RectRight,RectBottom),
TempImageJPEG.Picture.Bitmap);
Printer.EndDoc;
TempImageBMP.Free;
TempImageJPEG.Free;
end;