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

Вниз

Цвета при масштабировании Bitmap в TImage   Найти похожие ветки 

 
Alex_Y   (2008-10-21 08:14) [0]

Привет Всем.

Пишу что-то типа просмотра изображений и столкнулся с такой проблемой. Загружаю оригинальную картинку в bmpSrc : TBitmap. Вычисляю область отображения от масштабного коэффициента Kscale. Копирую в imgEdit : Timage область просмотра с помощью CopyRect. Возникает проблема, когда область копирования из источника меньше области imgEdit, происходит нормальное масштабирование с сохранением оригинальных цветов палитры. Если же наоборот, то происходит уменьшение изображения, но идет искажение цветов.
вот собственно код:

RectEdit := imgEdit.ClientRect;
CenterImgX := bmpSrc.Width shr 1;  CenterImgY := bmpSrc.Height shr 1;
CenterX := imgEdit.Width shr 1;  CenterY := imgEdit.Height shr 1;
RectSrc.Left   := CenterImgX - Round(CenterX * Kscale);
RectSrc.Right  := CenterImgX + Round(CenterX * Kscale);
RectSrc.Top    := CenterImgY - Round(CenterY * Kscale);
RectSrc.Bottom := CenterImgY + Round(CenterY * Kscale);
imgEdit.Picture.Bitmap.Canvas.CopyRect(RectEdit, bmpSrc.Canvas, RectSrc);

Вопрос собственно где я накосячил, или может есть другой способ реализации данной задачи.

Заранее спасибо.


 
brother ©   (2008-10-21 09:21) [1]

кто мешает воспользоваться image1.stretch:=true ?


 
Alex_Y   (2008-10-21 09:26) [2]

не поможет, я делаю инструмент типа лупы в графических редакторах, поэтому может быть отображено как часть изображения на сесь image, так и все полностью в какой то части image, а все остальное залито белым


 
MBo ©   (2008-10-21 10:08) [3]

SetStretchBltMode


 
Alex_Y   (2008-10-21 11:01) [4]

2 MBo, огромное спасибо, то что надо :)



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
15-1222666562
Задачник
2008-09-29 09:36
2008.11.30
Движение с переменным ускорением Помогите посчитать?


15-1222766110
Квэнди
2008-09-30 13:15
2008.11.30
watches list process is not acessible


15-1222809240
Германн
2008-10-01 01:14
2008.11.30
Работа с Голубым Зубом


15-1222319756
Slider007
2008-09-25 09:15
2008.11.30
С днем рождения ! 25 сентября 2008 среда


15-1222526689
Кое кто
2008-09-27 18:44
2008.11.30
А нет ли каких нибудь курсов на дисках,