Создание миниатюры (thumbnail) рисунка сохраняя соотношение сторон используя С#

Четверг, 07 Авг 2014 9:34
Posted in category C#

Я использую большие изображения (высокого разрешения) а затем создаю их миниатюры (thumbnail).
Предположим, мне нужна миниатюра (эскиз), чья ширина должна быть максимум 200px. Теперь, создавая миниатюру/эскиз большого изображения нам также потребуется его высота. Итак, как же мы узнаем о его высоте по поддержанию соотношения сторон. Это может быть достигнуто при помощи простого математического уравнения.

Давайте все это сделаем при помощи кода. Я делаю это одним нажатием кнопки.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
protected void Button1_Click(object sender, EventArgs e)
{
//---------- Getting the Image File
System.Drawing.Image img = System.Drawing.Image.FromFile(Server.MapPath("~/profile/Avatar.jpg"));

//---------- Getting Size of Original Image
double imgHeight = img.Size.Height;
double imgWidth = img.Size.Width;

//---------- Getting Decreased Size
double x = imgWidth / 200;
int newWidth = Convert.ToInt32(imgWidth / x);
int newHeight = Convert.ToInt32(imgHeight / x);

//---------- Creating Small Image
System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
System.Drawing.Image myThumbnail = img.GetThumbnailImage(newWidth, newHeight, myCallback, IntPtr.Zero);

//---------- Saving Image
myThumbnail.Save(Server.MapPath("~/profile/NewImage.jpg"));
}
public bool ThumbnailCallback()
{
return false;
}

Оригинальное изображение

Koala

Thumbnail изображение

KoalaThumb



Вы можете оставить отзыв. Пинг сейчас закрыт.

Ваш отзыв