Навигация
Главная
Поиск
Форум
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
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 65080
Модуль Forms 64856
Пример работы с... 63286
ТЕХНОЛОГИИ ДОСТ... 61564
Имитационное мо... 57410
Реклама
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

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

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

Реклама



Подписывайся на 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 Комментариев · 22435 Прочтений · Для печати

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


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

Случайные загрузки
FormShape [Исходн...
Язык программиров...
Трассировка прово...
База для Allsubmi...
Delphi 7: Для про...
DateEdit
Изучаем Ассемблер
PHP/MySQL для нач...
Assistant
Flash MP3 Player ...
Отключение и вклю...
AdBlaster v2.5 - ...
Игра "Астероиды" ...
Работа с матрицами
Pirc
ИНТЕРНЕТ ПРОГРАММ...
Apollovcl61
Простой пример ка...
Самоучитель PHP 5...
Керниган Б.В., Ри...

Топ загрузок
Приложение Клие... 100466
Delphi 7 Enterp... 86634
Converter AMR<-... 20077
GPSS World Stud... 12647
Borland C++Buil... 11758
Borland Delphi ... 8556
Turbo Pascal fo... 7037
Visual Studio 2... 4998
Калькулятор [Ис... 4760
FreeSMS v1.3.1 3541
Случайные статьи
Логотипы и символы...
Определение роли д...
Открытие существую...
Легальный заработок
Утверждения в сред...
0 необходимо приоб...
Реализация сеансов...
Вулкан 777
Бинарные операторы
Существуют три реж...
Для постоянных при...
Создаем правила бр...
Виртуальные машины...
Первое правило Net...
Перечислим основны...
Геометрические фигуры
11.2. Более сложн...
Microsoft - спроси...
В предыдущих верси...
Как правильно иска...
Функция InstallUse...
Macintosh Мегакомп SE
Устройство тем в P...
Служба самостоятел...
Рабочая площадка р...
Статистика



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


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