Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-100924
Михаил_
2003-07-13 22:45
2003.07.31
Помогите выбрать LCD монитор


1-100817
Nicky
2003-07-17 14:39
2003.07.31
ownerdraw popupmenu - как рисовать колонки?


3-100573
Zelius
2003-07-04 10:06
2003.07.31
Проблемы с запросами из-под FastReport


1-100702
Legran
2003-07-18 14:24
2003.07.31
Как добится другого поведения OpenDialog


14-100934
race1
2003-07-13 15:41
2003.07.31
momed COM





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский