Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Преобразовать BMP в JPEG, сжать и записать в TMemoryStream [D7]


user99834 ©   (2010-03-17 17:25:00) 

Здравствуйте, хотелось бы получить ответ на вопрос - что-то я, похоже, делаю неправильно.


bm:=TBitMap.Create;
bm.LoadFromFile('1.bmp');
jpgCurrent:=TJpegImage.Create;
jpgCurrent.Assign(bm);
jpgCurrent.CompressionQuality:=10;
jpgCurrent.DIBNeeded;
jpgCurrent.Compress;
jpgCurrent.SaveToFile('1.jpg'); //для проверки сохраняю в файл


Не получается, вылетает Access Violation


antonn   (2010-03-18 22:14:00) [1]

поиск в руки, я тему тут создавал


Германн   (2010-03-18 02:45:00) [2]


> antonn ©   (18.03.10 01:01) [10]
>
>
> > Rouse_ ©   (17.03.10 20:39) [8]
> >
> >
> > > Вообще та еще дрянь. Глючная по самое нихочу.
> >
> > Поподробнее можно?
>
> например в исходнике jpeg в коде есть строки

А привести сами строки с комментариями лень?


antonn   (2010-03-18 01:01:00) [3]


> Rouse_ ©   (17.03.10 20:39) [8]
>
>
> > Вообще та еще дрянь. Глючная по самое нихочу.
>
> Поподробнее можно?

например в исходнике jpeg в коде есть строки явно обращающиеся к нулевой и первой строке пикселов. Отсюда jpeg в дельфи не везде может быть высотой в 1 пиксель :)


DVM   (2010-03-17 20:42:00) [4]


> Лучше уж битмап зелибом жать

intel jpeg library

вот еще такой вариант нашел недавно

http://blog.synopse.info/post/2010/03/14/Fast-JPEG-decoder-using-SSE/SSE2


Rouse_   (2010-03-17 20:39:00) [5]


> Вообще та еще дрянь. Глючная по самое нихочу.

Поподробнее можно?


яяя   (2010-03-17 19:39:00) [6]

>> TJpegImage
Вообще та еще дрянь. Глючная по самое нихочу. Особенно все что связано с компресией и стреамами...

Ни на что кроме чтения и записи файла не пригодная.

Лучше уж битмап зелибом жать


яяя   (2010-03-17 19:39:00) [7]

Или искать менее глючный аналог


Leonid Troyanovsky   (2010-03-17 18:39:00) [8]


> user99834   (17.03.10 18:31) [4]

> jpgCurrent.Performance := jpBestSpeed;
>
> Без этого кода все работает.

Не верю. (c)

--
Regards, LVT.


user99834   (2010-03-17 18:31:00) [9]

Ан нет. Влияет на это следующее:

jpgCurrent.Performance := jpBestSpeed;

Без этого кода все работает. Спасибо всем.


user99834   (2010-03-17 18:29:00) [10]

Мда... Проблема в том, что этот код и есть собственно весь. Хорошо, а как кроме такого способа можно сделать указанное?


DVM   (2010-03-17 18:23:00) [11]


> user99834   (17.03.10 17:25) 


> Не получается, вылетает Access Violation

В этом коде нет ошибки. Ошибка в другом месте.


{RASkov}   (2010-03-17 17:58:00) [12]

> [0] user99834   (17.03.10 17:25)

На какой строке АВ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо