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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2012, 21:37   #1
player891
Пользователь
 
Регистрация: 15.03.2012
Сообщений: 18
По умолчанию сжатие картинки

Здравствуйте, подскажите способы сжатия разрешения изображения формата bmp,jpeg в делфи с минимальной потерей качества,какие операторы за это отвечают?
если можно приведите пример сжатия любого разрешения.

Последний раз редактировалось player891; 20.03.2012 в 22:22.
player891 вне форума Ответить с цитированием
Старый 20.03.2012, 23:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
разрешения изображения формата
Всмысле изменение размера файла? Или именно сжатие изображения?
Если первое то функции из GDI+ могу порекомендовать (сжатие в TIFF)
Если второе то... Да банальный StretchBlt из WinAPI подойдет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.03.2012, 23:40   #3
player891
Пользователь
 
Регистрация: 15.03.2012
Сообщений: 18
По умолчанию

второе,нужно изменить (уменьшить) разрешение изображения ,
спасибо, буду разбираться с этим StretchBlt из WinAPI
player891 вне форума Ответить с цитированием
Старый 22.03.2012, 22:13   #4
player891
Пользователь
 
Регистрация: 15.03.2012
Сообщений: 18
По умолчанию

Код:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;
 GDIPAPI,
 GDIPOBJ;

type
 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
procedure OnPaint(DC: HDC);
var
graphics : TGPGraphics;
Image, pThumbnail: TGPImage;
begin
graphics := TGPGraphics.Create(DC);
Image:= TGPImage.Create('D:\1.jpeg');

pThumbnail := image.GetThumbnailImage(60, 48, nil, nil);
graphics.DrawImage(pThumbnail, 10, 10, pThumbnail.GetWidth, pThumbnail.GetHeight);

Image.Free;
pThumbnail.Free;
graphics.Free;
end;
end.
Запускаю ран высвечивается красная строка 7 по счету GDIPAPI,что не так?
player891 вне форума Ответить с цитированием
Старый 22.03.2012, 22:49   #5
player891
Пользователь
 
Регистрация: 15.03.2012
Сообщений: 18
По умолчанию

[Error] Unit1.pas(8): Declaration expected but identifier 'GDIPAPI' found - Декларация ожидалось, но идентификатор "GDIPAPI" найден.что это значит?переводчик криво переводит, а с англ я не дружу.
[Error] Unit1.pas(27): Undeclared identifier: 'TGPGraphics' - необъявленный идентификатор: "TGPGraphics".я же объявил их в var,почему ошибка?
[Error] Unit1.pas(28): Undeclared identifier: 'TGPImage' - необъявленный идентификатор: 'TGPImage'
[Error] Unit1.pas(30): Missing operator or semicolon - Отсутствует оператор или точка с запятой - не понял какого оператора ему нужно?)
[Error] Unit1.pas(31): Missing operator or semicolon
[Error] Unit1.pas(33): Missing operator or semicolon
[Error] Unit1.pas(34): Missing operator or semicolon
[Error] Unit1.pas(34): Missing operator or semicolon
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas' - [Fatal Error] Project1.dpr (5): не удалось скомпилировать использовать
'Unit1.pas'
player891 вне форума Ответить с цитированием
Старый 22.03.2012, 23:27   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

почему в списке модулей у вас стоит ; а не запятая?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.04.2012, 10:02   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от player891 Посмотреть сообщение
второе,нужно изменить (уменьшить) разрешение изображения ,
спасибо, буду разбираться с этим StretchBlt из WinAPI
Это простейший метод, дающий не очень хорошие результаты.
Например, наклонная сплошная линия в 1 пиксель толщиной превратится в пунктирную. А вертикальная или горизонтальная может и вообще исчезнуть.
Если это устраивает - то пожалуйста. А если нет, то придется смириться с тем, что для преобразования изображения следует использовать не "операторы", а "алгоритмы".
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JPEG сжатие на C++ racushka_n Помощь студентам 4 24.04.2012 23:04
Арифметическое сжатие. Dartar Помощь студентам 3 25.06.2011 03:06
Сжатие видео mranything Помощь студентам 1 17.03.2011 01:10
Отображение картинки на кнопке WPF. Загрузка картинки из ресурсов. Проблема с Uri. Casper-SC Общие вопросы .NET 0 27.06.2010 23:11
Сжатие строК! prizrak1390 Общие вопросы Delphi 16 02.01.2008 17:15