Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сколько всего существует стран в мире immigrationservice.ru/skolko-stran-v-mire/.
Сейчас на сайте
Гостей: 13
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы узла коммутации сообщений на GPSS + Пояснительная з...
Моделирование автовокзала + Отчет + Блок схема
Игра Sokoban на Delphi + Блок схемы

Класс TJPEGImage
Известно, что стандарт JPEG предусматривает сжатие с потерями
качества. Примененный в JPEG алгоритм позволяет достичь сжатия в
десятки раз – правда, при этом изображение подвергается необрати-
мому искажению, и из него пропадает часть деталей. Бессмысленно
подвергать хранению в формате JPEG чертежи, рисунки, а также лю-
бые изображения с малым числом градаций – он предназначен именно
для изображений фотографического качества.
Поддержка формата JPEG реализована в Delphi посредством класса
TJPEGImage, который описан в модуле JPEG (подключается в uses).
Свойства класса TJPEGImage можно условно разделить на две
группы: используемые при сжатии и при распаковке. Некоторые из
них описаны в табл. 1.9.
Таблица 1.9. Некоторые свойства класса TJPEGImage
Некоторые свойства класса TJPEGImage

К объекту класса TJPEGImage предъявляются двоякие требования.
С одной стороны, он должен поддерживать сжатие данных для записи
на диск, с другой — распакованные данные в формате DIB, чтобы по
требованию системы отрисовать их. Поэтому объект класса
TJPEGimage может хранить оба вида данных, а также производить их
взаимные преобразования, т. е. сжатие и распаковку. Для этого в нем
предусмотрены методы:
procedure Compress;
procedure DIBNeeded;
procedure JPEGNeeded;



Рекомендуется вызывать метод DIBNeeded заранее, перед отрисов-
кой картинки — это ускорит процесс ее вывода на экран.
Следует отметить, что класс TJPEGImage не имеет своей канвы для
рисования — для этого его нужно преобразовать в класс TBitmap. Для
этого полезно использовать метод Assign, который позволяет помес-
тить в класс TBitmap объект TJPEGImage и наоборот:
MyBitmap.Assign(MyJPEGImage);
MyJPEGImage.Assign(MyBitmap);



При этом происходит преобразование форматов.
Пример. Создадим конвертер картинок из формата .bmp в формат
.jpeg.
Для этого понадобится компоненты: TImage (для просмотра кар-
тинок), две кнопки TButton (для открытия диалога выбора картинок и
для запуска процесса), TTrackBar (для того чтобы устанавливать каче-
ство картинки) и TOpenDialog. Для OpenDialog1 настроим фильтр,
чтобы можно было открывать только картинки в формате .bmp.
Обработчик события OnClick для первой кнопки может иметь та-
кой вид:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Opendialog1.Execute
then Image1.Picture.LoadFromFile(OpenDialog1.FileName);
end;



Далее необходимо написать основную часть программы, то есть
создание jpeg-изображения. Все действия будем производить по щелч-
ку на второй кнопке. Необходимо будет создать объект типа TJpegImage,
провести с ним необходимые действия, а потом с помощью ме-
тода Compress, упаковать изображение и остается только сохранить
изображение в файл. Еще необходимо настроить свойства TrackBar'a:
свойство Max надо сделать равным 100 и свойство Position равным
также 100. Тогда обработчик нажатия на вторую кнопку может быть
таким:
procedure TForm1.Button2Click(Sender: TObject);
var
jpg: TJpegImage;
begin
jpg:=TJpegImage.Create; //создаем экземпляр объекта
//присваиваем ему изображение
jpg.Assign(Image1.picture.graphic);
//устанавливаем степень сжатия (качество) 1..100
jpg.CompressionQuality:=TrackBar1.Position;
jpg.Compress; //упаковываем графику
jpg.SaveToFile('C:\Pic\first.jpg'); //сохраняем графику
jpg.free; //уничтожаем экземпляр объекта
end;






















Опубликовал Kest December 08 2009 14:03:29 · 1 Комментариев · 27016 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Максим June 15 2010 09:00:44
А можно ли, при помощи компонента прописать такие значения как: "Автор", "Описание", "Ключевые слова"...
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Разработка интерн...
oTextrackBar
Основы программир...
Assembler. Учебни...
С/C++ Программиро...
Fig [Исходник на ...
StartMark
Панель случайной ...
База для Allsubmi...
ScreenSaver [Исхо...
Abbrevia
Защита от спама ...
Профессиональное ...
WAP версия сайта
Система баннеро...
Программирование ...
Handles
Приложение Клиент...
Ics
Как программирова...

Топ загрузок
Приложение Клие... 100813
Delphi 7 Enterp... 98112
Converter AMR<-... 20313
GPSS World Stud... 17092
Borland C++Buil... 14274
Borland Delphi ... 10395
Turbo Pascal fo... 7404
Калькулятор [Ис... 6103
Visual Studio 2... 5247
Microsoft SQL S... 3681
Случайные статьи
ГЕНОЛОГ
Тонкости
Создание баз LSDB ...
Испытание имитацио...
Генеалогическое де...
Специализация
Чистые виртуальные...
Goal,Rules. камеры...
Передача данных в ...
Межмодульные перем...
Распределенные фай...
Двоичный поиск на ...
на отдельных учетн...
Проект подсети
Ассоциативные масс...
Режим многоадресно...
Использование полу...
• Массивы Кернигана
СОЗДАНИЕ ЭКСПЕРТНЫ...
Создание программ ...
Она не действует н...
Границы ячейки
ВВЕДЕНИЕ В ОТСЕЧЕНИЕ
Женская консультац...
Все хотят писать э...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?