Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в Image отобразить участок IPG файла по координатам [D7, XP]


ruslan_as ©   (2010-03-03 09:12:00) 

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


Putnik   (2010-03-06 19:22:00) [1]

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


{RASkov}   (2010-03-06 11:07:00) [2]

> [7] ruslan_as   (06.03.10 08:43)

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

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


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

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


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

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


{RASkov}   (2010-03-03 22:00: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;

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


QAZ   (2010-03-03 12:56:00) [6]

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


icWasya   (2010-03-03 12:48:00) [7]

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


ruslan_as   (2010-03-03 12:15:00) [8]

Пробую вот так:
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.


{RASkov}   (2010-03-03 09:32:00) [9]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо