Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Как в 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 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.056 c
15-1267169309
abhtr
2010-02-26 10:28
2010.08.27
Как сложить данные из одной таблицы


15-1268292135
boriskb
2010-03-11 10:22
2010.08.27
ACADEMIA


4-1236148613
ТЧеловек
2009-03-04 09:36
2010.08.27
Запуск второй копии приложения только для другого пользователя ?


15-1266928491
Кто б сомневался
2010-02-23 15:34
2010.08.27
Интернет убил «Убийцу» (защита от пиратства)


2-1270231741
Vigi
2010-04-02 22:09
2010.08.27
Информация о доступных серверах!





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