Главная страница
    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
1-100784
АлеКо
2003-07-17 07:09
2003.07.31
Работа со строками.


3-100586
ELF
2003-07-08 19:54
2003.07.31
Эквивалент NULL в TQuery


3-100567
KIR
2003-07-08 13:41
2003.07.31
Вопрос по оператору SELECT


3-100584
Григорий Ситнин
2003-06-26 16:39
2003.07.31
Трехзвенная архитектура приложения


1-100826
Goga
2003-07-17 18:09
2003.07.31
Привязка события к компоненту созданного в runtime





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