imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 21.03.2007, 23:46     # 1
andrei solovjev
Newbie
 
Регистрация: 16.06.2005
Сообщения: 38

andrei solovjev Нуль без палочки
Ресайз картинок в .NET

Необходимо исходную большую картинку в формате *.jpeg уменьшить до нужного размера и сохранить в формате *.jpeg и *.gif.

Ресайз выполняет функция:

Код:
public static Image ResizeImage(Image img, int newWidth, int newHeight) 
{            
float ratio = (float)img.Width / (float)img.Height;           
 int target_height = (int)((float) newWidth / ratio);            
if (target_height > newHeight && newHeight > 0)            
{                
target_height = newHeight;                
newWidth = (int)((float)target_height * ratio);            
}            newHeight = target_height;                        
Image thumbImg = new Bitmap(newWidth, newHeight);             
using (Graphics gr = Graphics.FromImage(thumbImg)) {                 
gr.DrawImage(img, new Rectangle(0, 0, newWidth, newHeight), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel);             
}             
return thumbImg;         
}
Сохраняю следующим образом:

Image img = Image.FromFile(group_path);//...img.Save(group_path1, ImageFormat.Gif);
Качество ресайза и сохранения при данной реализации оставляет желать лучшего (такое же как в MS Paint). Посоветуйте, как можно добиться лучшего качества. Может есть какие-нибудь сторонние библиотеки?
andrei solovjev вне форума  
Старый 22.03.2007, 15:02     # 2
Gunslinger
Advanced Member
 
Аватар для Gunslinger
 
Регистрация: 15.09.2004
Адрес: Украина, Хмельницкий
Сообщения: 403

Gunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собойGunslinger Имеются все основания чтобы гордиться собой
Ну можешь еще так изменить размеры:
Image l_ResultImage = null;
l_ResultImage = l_basePicture.GetThumbnailImage(l_newWidth, l_newHeiqht, null, IntPtr.Zero);
__________________
The man in black fled across the desert, and the Gunslinger followed. (c) S.King
Gunslinger вне форума  
Старый 23.03.2007, 09:43     # 3
andrei solovjev
Newbie
 
Регистрация: 16.06.2005
Сообщения: 38

andrei solovjev Нуль без палочки
Но все же, никто не знает как качественно сохранить в GIF???
andrei solovjev вне форума  
Старый 24.03.2007, 00:47     # 4
andrei solovjev
Newbie
 
Регистрация: 16.06.2005
Сообщения: 38

andrei solovjev Нуль без палочки
Нашел решение:
http://codebetter.com/blogs/brendan....6103.aspx#7056
Тема закрыта.
andrei solovjev вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:53.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.