Маленький JPEG

HaosMan

Хочу вывести 1/8 от JPEG в IMAGE, пишу код:var J:TJPEGImage;begin J:=TJPEGImage.Create; J.Scale:=jsEighth;J.LoadFromFile('c:\2.jpg');Image1.Picture.Graphic:=j;Label1.Caption:=IntToStr(Image1.Picture.Graphic.Width); Label2.Caption:=IntToStr(Image1.Picture.Graphic.Height);Label3.Caption:=IntToStr(j.Width); Label4.Caption:=IntToStr(j.Height);end;Но в IMAGE картинка выводится в реальном размере, хотя в J размеры то что надо. Что я делаю не так?
11 ответов

HaosMan

Stretch?


HaosMan

Для Image свойство Stretch установлено в False.


HaosMan

Для Image свойство Stretch установлено в False.
А F1 по этому свойству посмотреть? Или хотя быпоэкспериментировать в том же дизайн-тайме?


HaosMan

А смысл? Мне же нужно не ужимать картинку, а выводить ее реальную, только предварительно уменьшив до 1/8, для этого я и пишу6J.Scale:=jsEighth;Проблема в том, что в Image почему-то передается оригинал.


HaosMan

А смысл? Мне же нужно не ужимать картинку
А кто сказал, что Stretch ужимает картинку?Почитай таки справку, все же...И попробуй


HaosMan

Ладно может быть я и ошибаюсь, нафига тогда вот это вообще нужно!!!??: J.Scale:=jsEighth;


HaosMan

Ладно может быть я и ошибаюсь, нафига тогда вот это вообще нужно!!!??: J.Scale:=jsEighth;
Use Scale to optimize performance for previewing an image. jsFullSize displays the image as maximum size, whereas jsEighth displays an eighth of the image size, but 8 times faster.TJPEGScale is the type of the Scale property. Scale it used for reading in files, that is, for decompression.


HaosMan

whereas jsEighth displays an eighth of the image size, but 8 times faster
Разве это не означает, что будет отображаться 8 часть от размера картинки?А где ты данный Help накопал, можно ссылку?Может просто мне кто-нибудь поможет с готовым кодом?


HaosMan

Нашел откуда инфа взята, из справки))Ну вот мне кажется в справке как раз говорится про то, что я и хочу))) Но почему же у меня не получается? или я не правильно понимаю?
TJPEGScale represents the display size of a JPEG image.Value MeaningjsFullSize Displays a full-sized image.jsHalf Displays a half-size image in half the time it takes to display a full-sized image.jsQuarter Displays a quarter-size image in a quarter of the time it takes to display a full-sized image.jsEighth Displays an eighth-size image in an eighth of the time it takes to display a full-sized image.


HaosMan

Скорей всего дело в этом:Взято с http://www.delphikingdom.com/asp/answer.asp?IDAnswer=45099
12-09-2006 15:15Все дело в том, что в Jpeg имеется TJpegData. Там хранится оригинальное изображение, и что бы Вы не делали, изображение всегла выводится оттуда. Для решения проблемы имеется два пути: 1 - сохранить файл на диск, 2 - сохранить в поток. Естественно выбираем второй. Последующей загрузкой мы уже получим, то что нужно. Теперь можно и в битмап перекинуть и на экран вывести, пезультат будет тот, который хотели получить.


HaosMan

А вот и нашел решение:TJPEGImage(Image1.Picture.Graphic).Scale := jsEighth;Какой Я молодец.