Главная страница
    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.061 c
2-1268820037
oleg1963lora
2010-03-17 13:00
2010.08.27
TimeToStr. Изменение FormatSettings


2-1271328693
vasya
2010-04-15 14:51
2010.08.27
Создание "компилятора" e-book


2-1274676640
viktooor
2010-05-24 08:50
2010.08.27
Запрет редактирование в Grid


2-1271311609
Den
2010-04-15 10:06
2010.08.27
InstallShield диалоги


2-1270465711
Чайник
2010-04-05 15:08
2010.08.27
Возвращаемое значение ShowModal





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