Вниз
Скачать: CL | DM;

Как в Image отобразить участок IPG файла по координатам   Найти похожие ветки 

 
ruslan_as   (2010-03-03 09:12) [0]

Нужна помощь: Есть файлы JPG. Нужно в компоненте Image отобразить лишь участок по координатам 4-х точек. Например: (50, 50) (100,50), (50,100), (100,100). Спасибо за помощь...


 
{RASkov} ©   (2010-03-03 09:32) [1]

uses jpeg;, TJpegImage, Canvas, CopyRect + F1
Вроде все что необходимо. А в чем вопрос-то?


 
ruslan_as   (2010-03-03 12:15) [2]

Пробую вот так:
var SRect, DRect: TRect;// Объявляю две переменные типа TRect
begin
Image1.Picture.LoadFromFile(ExtractFileDir(Application.ExeName)+"\1_1ru.jpg");
SRect:=Rect(00, 0, Image1.Width, Image1.Height);
DRect:=Rect(50, 50, 100, 100); //или DRect.Left:=10; DRect.Top:=10; DRect.Right:=110; DRect.Bottom:=110;
Image2.Canvas.CopyRect(DRect, Image1.Canvas, SRect);}
Пишет, что может только изменить изображение, если это содержит битовый массив. А у меня JPG.


 
icWasya ©   (2010-03-03 12:48) [3]

В Image2 должно находится Bitmap нужного размера


 
QAZ   (2010-03-03 12:56) [4]

нельзя чтолибо делать с жпег пока он не раскодирован в битмап


 
{RASkov} ©   (2010-03-03 22:00) [5]

> [2] ruslan_as   (03.03.10 12:15)

на пример:
var jpg: TJPEGImage; bmp: TBitmap;
begin
 jpg:=TJPEGImage.Create;
 jpg.LoadFromFile(ExtractFileDir(Application.ExeName)+"\1_1ru.jpg");
 bmp:=TBitmap.Create;
 bmp.Assign(jpg);
 Image2.Canvas.CopyRect(Rect(50, 50, 100, 100), bmp.Canvas, Rect(0, 0, bmp.Width, bmp.Height));
 jpg.Free;
 bmp.Free;
end;

только исключения обрабатывай...


 
ruslan_as   (2010-03-04 09:38) [6]

{RASkov} Спасибо! Очень помог. Буду должен :))


 
ruslan_as   (2010-03-06 08:43) [7]

По ходу работы появился вопрос по качеству. У меня на экране качество значительно отличается от оригинала (не в лучшую сторону :)  ). Можно ли это исправить?


 
{RASkov} ©   (2010-03-06 11:07) [8]

> [7] ruslan_as   (06.03.10 08:43)

У тебя
Rect(50, 50, 100, 100)
и
Rect(0, 0, bmp.Width, bmp.Height)
отличаются размерами?

или о каком качестве речь?


 
Putnik ©   (2010-03-06 19:22) [9]

Там режим надо правильный выставить перед копированием, только абсолютно не помню какой. Посмотрю исходники допишу.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.074 c
2-1269095631
r_yevgeniy
2010-03-20 17:33
2010.08.27
Программа поразрядной инверсии десятичных чисел


2-1271243243
Delphist2
2010-04-14 15:07
2010.08.27
запуск приложения с параметрами


15-1263829418
TStas
2010-01-18 18:43
2010.08.27
А куда пропало "Показать мои вопросы"


2-1268242784
rust-02
2010-03-10 20:39
2010.08.27
Как считать строки из текстового файла как массив


4-1230942499
Fighter
2009-01-03 03:28
2010.08.27
Как получить серийный номер USB флешки (UniqueID)




   Наверх