Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
Far   (2003-07-25 00:21) [0]

Уважаемые! Подскажите самый простой способ масштабирования изображения типа TBitmap при выводе на принтер. Не хочется использовать готовые отчеты, но необходимо сохранить нормальный размер изображения на печати.


 
Marser   (2003-07-25 01:27) [1]

Если речь идет о сохранении пропорций рисунка, то проще не бывет: Image1.Proportional:=true


 
MBo   (2003-07-25 07:22) [2]

Canvas.StretchDraw
Stretchblt


 
Far   (2003-07-25 17:16) [3]

После применения Canvas.StretchDraw с масштабированием на коэфициент принтер/экран, рисунок получается в крапинку, а хотелось бы сохранить качество изображения


 
Song   (2003-07-25 17:17) [4]

Это скорей драйвер принтера глючит чем TCanvas


 
Far   (2003-07-25 17:34) [5]

Врядли. Принтер самый обычный (HP LaserJet 6L)


 
ggsoft   (2003-07-25 17:35) [6]

SetMapMode(), SetViewportOrgEx()...


 
Anatoly Podgoretsky   (2003-07-25 18:16) [7]

Far (25.07.03 17:34)
О знаменитые НР драйвера, чудо программисткого разума.


 
Far   (2003-07-25 22:17) [8]

А может про это можно где-то почитать, если примерчик дать влом?


 
KSergey   (2003-07-26 09:04) [9]

Подробности читать по ссылке
Собственно процедуру просто так даю, не претендуя на ее хорошесть. И вообще стырена из приведенного фака. Она универсальная для любого формата картинки, потому там и есть создание временного битмапа. Если картинка уже битмап - нифига промежуточного создавать не нужно. ARect - размер и оложение картинки в текущих координатах принтера

// печать картинок - эта ф-ция была взята за основу, теперь испоьзуется несколько переделанный вариант
// (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
}


 
Far   (2003-07-26 15:17) [10]

to KSergey ©
Спасибо огромное за помощь и поддержку! Сейчас буду пробовать.



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

Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.018 c
1-20498
Hatawa
2003-07-23 08:33
2003.08.07
Почему при передаче управления из MDI-окна лезут глюки?


14-20768
SPeller
2003-07-19 13:12
2003.08.07
Помогите с ХР!


11-20461
Arioch
2002-12-03 14:57
2003.08.07
new Project & MCK 1.57


1-20529
Vintik
2003-07-26 15:34
2003.08.07
Надо сделать чтоб в определеный момент окно становилось активным


1-20518
Alex134
2003-07-25 01:21
2003.08.07
Свойство-компонент





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский