Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как можно уменьшить размер изображения?


Автор: Voronin_Igor 7.2.2009, 15:21
Люди помогите! Пишу прогу одна из функций которой это просмотр и уменьшение изображения.
С просмотром все понятно
Код

Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);

Уменьшать получается только на форме меняя Width и Height, а при сохранении размер остается прежний  smile 



 

Автор: SenkraD 7.2.2009, 16:03
попробуй так:
Код

image1->Picture->Width = 100;
image1->Picture->Height = 100;
image->Picture->SaveToFile( SavingPath );

Автор: Dmi3ev 7.2.2009, 16:08
Развеселил  smile там TBitmap нужно...

Добавлено через 42 секунды
SenkraD, я про автора...

Автор: Voronin_Igor 7.2.2009, 16:20
Цитата(SenkraD @  7.2.2009,  14:03 Найти цитируемый пост)

image1->Picture->Width = 100;
image1->Picture->Height = 100;
image->Picture->SaveToFile( SavingPath );

Это я пробовал уменьшает только в форме. 
а файл остается без изменений   


Автор: taiven 7.2.2009, 16:26
Код

Image1->Picture->LoadFromFile("C:/1.bmp");
Image1->Picture->Bitmap->Width = 100;
Image1->Picture->Bitmap->Height = 100;
Image1->Picture->SaveToFile("C:/2.bmp");

Автор: Dmi3ev 7.2.2009, 23:48
Этот уменьшит картинку, но при этом он ее обрежет...

Автор: Voronin_Igor 8.2.2009, 00:20
спасибо попробую!

Добавлено через 2 минуты и 9 секунд
а нет никакой функции для сжатия файла?  

Автор: Voronin_Igor 8.2.2009, 15:06
Цитата(taiven @  7.2.2009,  14:26 Найти цитируемый пост)
Image1->Picture->LoadFromFile("C:/1.bmp");
Image1->Picture->Bitmap->Width = 100;
Image1->Picture->Bitmap->Height = 100;
Image1->Picture->SaveToFile("C:/2.bmp");

это все хорошо а как быть с JPG
второй день пробую и никаких результатов в основном пишет что не может перевести форматы  smile 

Автор: THandle 8.2.2009, 16:38
Можно попробовать уменьшить через Canvas->StretchDraw()

Автор: Dmi3ev 8.2.2009, 17:15
Цитата

это все хорошо а как быть с JPG

если так же вырезать часть картинки, то тогда вот так:
Код

TJPEGImage * n=new TJPEGImage();
Graphics::TBitmap * temp=new Graphics::TBitmap();
n->LoadFromFile("D:\\N70_5.jpg");
temp->Assign(n);
temp->Width=100;
temp->Height=100;
temp->SaveToFile("D:\\1.bmp");

конечно, подключить jpeg.hpp

Автор: Voronin_Igor 10.2.2009, 12:33
Спасибо почти так я уже пробовал. мне нужно что бы изображение не обрезалось, а уменьшалось с сохранением пропорций как на формах если уменьшаешь размер то уменьшается вся картика нужно только выставить свойство proport smile ional=true   

Автор: seawolf 10.2.2009, 15:32
Подцепи в проект freeimage. Там тебе и масштабирование и поворот и обрезание и чего только нету. Все популярные форматы и Jpeg2000 в том числе. У проекта есть своя страница в сети (ссылку не помню думаю что ввести freeimage.dll будет достаточно)

Автор: Voronin_Igor 10.2.2009, 17:32
спасибо обязательно попробую

Автор: Voronin_Igor 23.2.2009, 14:52
Цитата(THandle @  8.2.2009,  14:38 Найти цитируемый пост)
Можно попробовать уменьшить через Canvas->StretchDraw()

Спасибо помогло все отлично работает smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)