Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.30;
Скачать: CL | DM;

Вниз

Печать картинки   Найти похожие ветки 

 
REA ©   (2003-01-17 16:08) [0]

Хочу напечатать сабж на принтер. Не видел ли кто рабочей процедуры печати на принтер TGraphic?
Я конечно сделал кое-как, но печатает не всегда и приходится сначала в Bitmap переводить, а дальше из него с помощью StretchDIBits. Хочется сделать чтобы стабильно работало для всех палитр, принтеров, глубины цвета и т.п.


 
REA ©   (2003-01-17 17:41) [1]

Неужели никто не печатал картинки или вопрос неуместен?
Сорри за повтор.


 
LongIsland ©   (2003-01-17 17:57) [2]

procedure TfmMain.mmPrintClick(Sender: TObject);
var
Info: PBitmapInfo;
InfoSize, ImageSize: DWord;
Images: Pointer;
begin
if not dgPrint.Execute then Exit;
Printer.BeginDoc;
GetDIBSizes(Image.Picture.Bitmap.Handle, InfoSize, ImageSize);
Info:=AllocMem(InfoSize);
try
Images:=AllocMem(ImageSize);
try
GetDIB(Image.Picture.Bitmap.Handle, 0, Info^, Images^);
StretchDIBits(Printer.Canvas.Handle,
0, 0, Printer.PageWidth, Printer.PageHeight,
0, 0, Image.Width, Image.Height,
Images, Info^, DIB_RGB_COLORS, SRCCOPY);
finally
FreeMem(Images, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
end;
Printer.EndDoc;
end;

Содержимое TImage я печатаю таким образом.


 
rea ©   (2003-01-20 16:19) [3]

Я печатаю почти так же. Печатается не всегда и не все.

Canvas.Lock;
With Canvas Do
Try
Bits := Bmp.Handle;
GetDIBSizes(Bits, InfoSize, ImageSize);
Info := AllocMem(InfoSize);
Try
Image := AllocMem(ImageSize);
Try
GetDIB(Bits, 0, Info^, Image^);
With Info^.bmiHeader Do
Begin
DIBWidth := biWidth;
DIBHeight := biHeight;
End;
StretchDIBits(Handle, rc.Left, rc.Top, rc.Right-rc.Left, rc.Bottom-rc.Top, 0, 0,
DIBWidth, DIBHeight, Image, Info^, DIB_RGB_COLORS, SRCCOPY);
Finally
FreeMem(Image, ImageSize);
End;
Finally
FreeMem(Info, InfoSize);
End;
Finally
Canvas.Unlock;
End;



Страницы: 1 вся ветка

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.032 c
3-96624
Voland_s
2003-01-11 17:56
2003.01.30
server time out


4-97098
Beginer1
2002-12-16 18:04
2003.01.30
program.exe+File.xxx=program.exe


8-96887
Ал
2002-10-16 15:36
2003.01.30
ZLib и как с ним работать?


14-96946
Driverrr
2003-01-12 11:56
2003.01.30
?


1-96792
Кен
2003-01-23 03:52
2003.01.30
Как получить список всех ресурсов которые я добавляю к программе?