Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];
ВнизКак смасштабировать Image Найти похожие ветки
← →
chs2r (2003-07-18 12:42) [0]Есть картинка TImage знаю разрешение принтера
нужно картинку перевести в другой масштаб и поместить на канву принтера. А как картинку масштабировать-не знаю. Помогите советом пожалста
← →
yaJohn (2003-07-18 12:46) [1]TImage.Stretch
← →
KSergey (2003-07-18 12:53) [2]Вот только я уже не помню в каких координатах параметр ARect
Вероятно, в текущих координатах, принтера. Просто не помню.
Обязательно гляньте указанные ссылки - особенно последнюю. Ну и конечно спасибо этому форуму, Анатолию Подгорецкому в частности.
Промежуточный BitMap создаю только потому, что не знаю заранее не входе какого формата картинка, а так получилось универсально, хотя и память жрет, конечно. Вероятно, можно как-то лучше сделать- но не знаю как.
А, еще было задание выводить картинку на принтер с определенным разрешением. Не помню - есть здесь или нет.
Если что-писать на мыло.
// (с) LongIsland (08.05.03 10:53) hydralex@mail.ru
// http://delphimaster.net/view/1-1052334020/
// (c) wea@felten.co.at (Alexander Wernhart)
// On Tue, 4 Feb 1997 20:54:43 -0300, Ruy Ponce de Leon Junior <rplj@di.ufpe.br>
// http://doc.trecom.tomsk.su/Delphi/UnofficialDevelopersFAQ/pages/printer.htm
procedure PicturePrint(APic: TPicture; ARect: TRect);
var
Info: PBitmapInfo;
InfoSize, ImageSize: DWord;
Image: Pointer;
BitMap: TBitmap;
begin
Printer.Canvas.Brush.Style := bsClear; // сам добавил; не уверен, что надо
BitMap := TBitmap.Create; // весь дальнейший код работает только с Bitmap
try
BitMap.Assign (APic.Graphic);
GetDIBSizes (BitMap.Handle, InfoSize, ImageSize);
Info := AllocMem (InfoSize);
try
Image := AllocMem (ImageSize);
try
GetDIB (BitMap.Handle, 0, Info^, Image^);
CalcCardPrRect (n);
StretchDIBits (Printer.Canvas.Handle,
ARect.Left, ARect.Top, ARect.Right-ARect.Left, ARect.Bottom-ARect.Top,
0, 0, BitMap.Width, BitMap.Height,
Image, Info^, DIB_RGB_COLORS, SRCCOPY);
finally
FreeMem(Image, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
end;
finally
BitMap.Free;
end;
end; // procedure PicturePrint
← →
chs2r (2003-07-18 13:24) [3]спасибо, все посмотрю и попробую :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c