Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Вниз
JPEG Найти похожие ветки
← →
Ezorcist (2007-03-09 23:44) [0]Добрый вечер!
На диске есть файл f.jpeg как мне узнать цвет пиксела [x,y] ?
bmp:=TBitmap.Create;
jp:=TJPEGIMAGE.Create;
jp.LoadFromFile("f.jpeg");
bmp.Width:=jp.Width;
bmp.Height:=jp.Height;
bmp:=TBitmap(JP);
bmp.Canvas.Pixels[x,y]
Так не выходит....
← →
DrPass © (2007-03-09 23:48) [1]
> bmp.Width:=jp.Width;
> bmp.Height:=jp.Height;
> bmp:=TBitmap(JP);
bmp.Assign(jp);
← →
Ezorcist (2007-03-10 00:17) [2]И еще вопрс:
var j:tjpegimage; bmp:Tbitmap; i:integer;
begin
j:=tjpegimage.Create;
bmp:=Tbitmap.Create;
bmp.Width:=10;
bmp.Height:=10;
bmp.Canvas.Pixels[0,0]:=rgb(1,2,3);
i:=bmp.Canvas.Pixels[0,0];
showmessage(inttostr(getRvalue(i))+" "+inttostr(getGvalue(i))+" "+inttostr(getBvalue(i)));
j.CompressionQuality:=100;
j.Assign(bmp);
j.Compress;
j.SaveToFile("C:\file.jpg"); //1
j.Free; //2
j:=tjpegimage.Create; //3
j.LoadFromFile("C:\file.jpg"); //4
bmp.Free;
bmp:=TBitmap.Create;
bmp.Width:=10;
bmp.Height:=10;
bmp.Assign(j);
i:=bmp.Canvas.Pixels[0,0];
showmessage(inttostr(getRvalue(i))+" "+inttostr(getGvalue(i))+" "+inttostr(getBvalue(i)));
1) Если CompressionQuality:=100 то это означает что потерь в цвете не будет?
2) Почему если //1 //2 //3 //4 исключить то оба сообщения напишут 1 2 3, а если нет, то второе сообщение будет 2 2 2 ?
← →
Ezorcist (2007-03-10 15:35) [3]Подскажите в чем дело пожалуйста?)
← →
RASkov (2007-03-10 15:46) [4]> [3] Ezorcist (10.03.07 15:35)
Попробуй
bmp.PixelFormat:=<отличный от pfDevice>
← →
Virgo_Style © (2007-03-10 15:46) [5]1. afaik, потерь в цвете быть вообще не должно, только в качестве.
2. разные программы, как правило, дают разные результаты.
← →
RASkov (2007-03-10 15:59) [6]> 1. afaik, потерь в цвете быть вообще не должно, только в
> качестве.
Уже может быть неверным цвет. Т.е. его состовляющие...
> 2. разные программы, как правило, дают разные результаты.
Программа-то одна - авторская. :)
← →
DrPass © (2007-03-10 16:52) [7]
> 1) Если CompressionQuality:=100 то это означает что потерь
> в цвете не будет?
Да нет, будут. Только минимальные :)
> 2) Почему если //1 //2 //3 //4 исключить то оба сообщения
> напишут 1 2 3, а если нет, то второе сообщение будет 2 2
> 2 ?
Не претендую на объективность (в исходниках TJpegImage не колупался), но подозреваю, что TJpegImage просто хранит отдельно несжатую картинку. И если ты загружаешь изображение из файла, она создается заново, а если просто делаешь j.Assign(bmp)/bmp.Assign(j), то картинка остается той же.
> 1. afaik, потерь в цвете быть вообще не должно, только в
> качестве.
Потери в качестве = потери в цвете. Кроме цвета, у пикселей вообще-то никаких других характеристик нет
← →
Virgo_Style © (2007-03-10 18:30) [8]Видимо, мое понимание выражения "потери в цвете" отличается от вашего -)
← →
Ezorcist (2007-03-11 22:10) [9]А что вообще значит потеря в качестве? В моем представлении это различие между цветами исходного и полученного пикселя. ??
Вообще можно сохранить картинку так, что бы цвета всех пикселей остались неизменными, и в тоже время присутствовало сжатие данных, те есть формат с сжатием без потерь? (Или единственный способ - сохранить в bmp, а потом упаковать?)
← →
DrPass © (2007-03-11 22:14) [10]
> Вообще можно сохранить картинку так, что бы цвета всех пикселей
> остались неизменными, и в тоже время присутствовало сжатие
> данных, те есть формат с сжатием без потерь?
Есть, конечно. Именно это делает любой алгоритм архивации :) Ну и само собой, есть форматы со сжатием без потерь, например, PCX.
← →
Ezorcist (2007-03-16 13:44) [11]2 DrPass
А именно в jpeg без потерь можно загнать?
Или тогда какой использовать формат, с которым можно было бы работать из deplhi?
← →
Amoeba © (2007-03-16 15:57) [12]
> А именно в jpeg без потерь можно загнать?
Только если все пиксели имеют один и тот же цвет. Только пользы от этого немного.
← →
Amoeba © (2007-03-16 16:06) [13]> DrPass © (11.03.07 22:14) [10]
>
>
> > Вообще можно сохранить картинку так, что бы цвета всех
> пикселей
> > остались неизменными, и в тоже время присутствовало сжатие
> > данных, те есть формат с сжатием без потерь?
>
> Есть, конечно. Именно это делает любой алгоритм архивации
> :) Ну и само собой, есть форматы со сжатием без потерь,
> например, PCX.
Только вот на 24битном цвете PCX сжатие (в подавляющем большинстве ситуаций) будет весьма незначительным.
← →
Amoeba © (2007-03-16 16:08) [14]
> Или тогда какой использовать формат, с которым можно было
> бы работать из deplhi?
Чем выше глубина цвета, тем меньше эффективность сжатия без потерь.
← →
Ezorcist (2007-03-16 22:02) [15]
> > Или тогда какой использовать формат, с которым можно было
> > бы работать из deplhi?
>
> Чем выше глубина цвета, тем меньше эффективность сжатия
> без потерь.
Хм... и как комментарий относиться к этой цитате?
PS Вопрос про формат все еще открыт)
← →
Amoeba © (2007-03-19 12:51) [16]Если нужно использовать форматы позволяющие сжатие без потерь,то понадобятся дополнительные библиотеки.
Если только считывать - то GraphicEx (бесплатно, с исходниками).
Если еще нужно и сохранять - то существующие библиотеки платные.
← →
Ezorcist (2007-03-19 15:24) [17]А если PNG например. Там есть потери? И delphi может с ним работать без дополнительных компонентов?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c