Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2007, 16:10   #1
Rapid
Форумчанин
 
Аватар для Rapid
 
Регистрация: 01.09.2007
Сообщений: 747
По умолчанию Сжатие битмапа

Доброго времени суток.
Проблема такая, есть к примеру 1000 битмапов размером 900*1200 их нужно сжать одновременно такими способами:
1. Сделать битмап нецветным, с оттенками серого
2. Сделать размером 300*400
3. Заархивировать
4. Извлеч для просмотра
Все это сделать на C++ Билдере
Еще я предполагаю, кто будет пользоваться моей прогой имеют архиватор win rar.
Лучше дайте ссылки, где все описано.
Заранее спасибо.
Никому не верьте.
Rapid вне форума Ответить с цитированием
Старый 06.12.2007, 16:30   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Скажу вам одно... для рар Вам пойдет и rar.exe из поставки winrar + unrar. Вот и архивирование. Для маштабирования изображения смотрите статьи в DelphiWorld. Для того чтобы поменять битность изображения Вам надо разобраться с битами... там все просто... Если имелось ввиду 4 бита то там вообще палитра нужна. Что собственно если не ковырять уже реализовано в классе TBitmap. Вот и все. Думаю дельфи на с++ перевести сможете.
BOBAH13 вне форума Ответить с цитированием
Старый 06.12.2007, 16:33   #3
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
Счастье

Вот как изменить качество битмапа:
image1.Picture.Bitmap.PixelFormat:= pf4bit;

Вот как считать качество:
case Image1.Picture.Bitmap.PixelFormat of
pfDevice: S:='Аппаратная';
pf1bit: S:='1 бит';
pf4bit: S:='4 бита (default)';
pf8bit: S:='8 бит';
pf15bit: S:='15 бит';
pf16bit: S:='16 бит';
pf24bit: S:='24 бита';
pf32bit: S:='32 бита';
pfCustom: S:='Custom';

Label1.Caption:=S;

Ну шоб изменить размеры:
Image1.Proportional:=true; //чтобь картинка не была непропорциональной
Image1.Stretch:=true; // собственно растяжение
Image1.Width:=400;
Image1.Height:=300;

Как нибудь заархивируешь, думаю на С не сложно будет переписать.

Кстати напиши как можно заархивировать файл (программно)
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.

Последний раз редактировалось NoName_emaNoN; 06.12.2007 в 16:43. Причина: дополнено
NoName_emaNoN вне форума Ответить с цитированием
Старый 06.12.2007, 17:51   #4
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Код:
Кстати напиши как можно заархивировать файл (программно)
сохраняем содержимое image в файл, запускаем рар из коммандной строки (программно) с нужными параметрами и всё.
zetrix вне форума Ответить с цитированием
Старый 06.12.2007, 20:16   #5
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
По умолчанию

Цитата:
Сообщение от zetrix Посмотреть сообщение
Код:
Кстати напиши как можно заархивировать файл (программно)
сохраняем содержимое image в файл, запускаем рар из коммандной строки (программно) с нужными параметрами и всё.
А какие там параметры, поподробней плиз.
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 06.12.2007, 21:39   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Раз это консольная версия более разумного производителя он наверняка сделал параметр к ней типа -h or /h or h. Типа вызов хелпа. Обычно все консоли выводят информацию о параметрах т.е. Вы должны написать батник
Код:
@rar.exe
@pause
ну собственно вывод в консоле, там и читайте все подробно.

Да кстати, очень плохо что Вы используете метод Strench. Метод от gdi не очень хорош сам по себе. Я же вроде написал смотрите примеры маштабирования в DelphiWorld, плюс думаю их и так в интернете не мало.

Последний раз редактировалось BOBAH13; 06.12.2007 в 21:42.
BOBAH13 вне форума Ответить с цитированием
Старый 06.12.2007, 22:54   #7
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Да кстати, очень плохо что Вы используете метод Strench. Метод от gdi не очень хорош сам по себе. Я же вроде написал смотрите примеры маштабирования в DelphiWorld, плюс думаю их и так в интернете не мало.
Согласен, тоже не нравиться как растяжение делается в TImage, сам писал собственный алгоритм расстяжения картинки, работает чуть дольше, но намного качественней, а Image.Stretch нужно использовать, если нужно быстро и грубо увеличить какую-нибудь картинку.
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 08.12.2007, 16:38   #8
Rapid
Форумчанин
 
Аватар для Rapid
 
Регистрация: 01.09.2007
Сообщений: 747
По умолчанию

Спасибо за ответы.
Никому не верьте.
Rapid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запись битмапа в файл SunKnight Общие вопросы Delphi 8 09.06.2008 08:56
Как ускорить загрузку битмапа в tImage Altera Мультимедиа в Delphi 10 24.03.2008 17:39
Изменение размера - Сжатие BMP в TImage Air Помощь студентам 2 02.03.2008 17:00
Проверка на сжатие vitalik007 Общие вопросы Delphi 3 20.08.2007 10:53
как рисовать на канве битмапы учитывая прозрачность участков битмапа? Alar Общие вопросы Delphi 0 29.10.2006 23:06