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

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

оптимизатор JPEG


Dy1 ©   (2007-05-06 12:32:00) 

Хочу написать оптимизатор JPEG. Как нарисовать сжатый JPEG не сохраняя его на винт? Посоветуйте плз.
KOLnMCK 2.56, D7

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
begin
 j := NewJpeg;
 j.Bitmap := NewBitmap(0,0);
 j.Bitmap.LoadFromFileEx('0.bmp'); // 24 бита
end;

procedure TForm1.KOLForm1Close(Sender: PObj; var Accept: Boolean);
begin
 j.SaveToFile('1.jpg'); // сохраняется с нужным качеством
 j.Free;
end;

procedure TForm1.KOLForm1Paint(Sender: PControl; DC: HDC);
begin
 if not j.Empty then
   j.Draw(Form.Canvas.Handle,0,40); // всегда 100%-ное качество :(
end;

procedure TForm1.Button1Click(Sender: PObj);
begin
 j.CompressionQuality := str2int(EditBox1.Text);
// ничего не помогает
//  j.Compress;
// j.JPEGNeeded;
 Form.Invalidate;
end;


alex3   (2007-05-07 23:29:00) [1]

Или держим два битмапа, в одном оригинал, а с другим производим операции.
После каждой операции, если надо, производим копирование с оригинала.
Выводя на форму один и другой можно визуально сравнить результат.


Vladimir Kladov   (2007-05-07 21:27:00) [2]

Вы читаете, что я написал? Сохраняйте в поток. Загружайте из потока. Битмап при вызове LoadFrom уничтожается.


Dy1   (2007-05-07 20:21:00) [3]


> Понятно, что 100%, ведь используется Bitmap

Мне надо рисовать на экране так же, как будет выглядеть сохранённая картинка


Vladimir Kladov   (2007-05-06 15:23:00) [4]

сохранять можно и в поток. Потом - загружать из этого же потока, переставив позицию в 0. Понятно, что 100%, ведь используется Bitmap, если он есть.


Наверх

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