Главная страница
    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.062 c
2-1272025204
tippa
2010-04-23 16:20
2010.08.27
как хранить большие списки в самой программе?


2-1267552320
HRustBB
2010-03-02 20:52
2010.08.27
Виртуальный диск с источником FTP


2-1269172946
Первокурсница
2010-03-21 15:02
2010.08.27
Программа вылетает (delphi 7), свойство кнопки Enabled или Visibl


2-1273908852
tippa
2010-05-15 11:34
2010.08.27
чтобы все ядра работали...


2-1267710669
Евгений Р.
2010-03-04 16:51
2010.08.27
Использование tOpenDialog





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