Навигация
Главная
Поиск
Форум
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
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Приложение «Про... 64175
Организация зап... 62784
Оператор выбора... 62634
Invision Power ... 62200
Подключение Mic... 61006
Модуль Forms 59911
Создание отчето... 59836
ТЕХНОЛОГИИ ДОСТ... 56038
Программируемая... 55552
Пример работы с... 53153
Имитационное мо... 51427
21 ошибка прогр... 46413
Реклама
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

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

База данных - словарь терминов на Delphi + Пояснительная записка
Расчет мер близости на отношениях на Delphi + Пояснительная записка
Принадлежит ли точка пересечению двух окружностей на Turbo Pascal + Отче...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Класс 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 17:03:29 · 1 Комментариев · 21260 Прочтений · Для печати

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


Комментарии
Максим June 15 2010 12: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...
Шаблон для новост...

Случайные загрузки
Просмотр коммент...
AboutSystem
CarGame [Исходник...
Создание Web-сайт...
index.php + мод ...
Введение в станда...
Система баннеро...
Billenium Effects...
Панель "ссылки"
SODA [Исходник на...
Факториал [Исходн...
GamesBase 3.0
PHP 5
Создание фракталов
Программирование ...
JBlabel3D
FilesInfo
Encrypt Decrypt
Моделирование дви...
Фундаментальные а...

Топ загрузок
Приложение Клие... 100366
Delphi 7 Enterp... 82143
Converter AMR<-... 20046
Borland C++Buil... 11045
GPSS World Stud... 10406
Borland Delphi ... 8032
Turbo Pascal fo... 6959
Visual Studio 2... 4961
Калькулятор [Ис... 4259
FreeSMS v1.3.1 3508
Случайные статьи
Всплывающие сообще...
Спецификация языка...
Абстрактные типы д...
Взаимодействия кла...
Типовой проект обл...
Введение
Демонстрация неско...
Влияние синхронизации
Глава 2. Интерфейсы
Сохранение работос...
Настройка событий ...
Алгоритмы цифровой...
Разработать прикл...
Каковы шансы на ус...
Трёхмерные построе...
TGT для KDCw2k
Список ВСЕХ русски...
(Terminal Services...
ЖК-дисплей фотоапп...
Отладка и программ...
Вот что происходит...
Опасность разглаше...
Основы съемки Cano...
Описание управляем...
Листинг 14.4. Доба...
Статистика



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


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