Практическое руководство. Создание эскизов изображений
Эскиз — это уменьшенная версия изображения. Вы можете создать эскиз изображения, вызвав метод GetThumbnailImage объекта Image.
Пример
В следующем примере объект Image создается из JPG-файла. Исходное изображение имеет ширину 640 пикселей и высоту 479 пикселей. Код создает эскиз изображения с шириной и высотой в 100 пикселей.
На рисунке ниже показан эскиз:
Примечание.
В этом примере объявляется метод обратного вызова, однако он никогда не используется. В данном случае поддерживаются все версии GDI+.
public bool ThumbnailCallback()
{
return true;
}
private void GetThumbnail(PaintEventArgs e)
{
Image.GetThumbnailImageAbort callback =
new Image.GetThumbnailImageAbort(ThumbnailCallback);
Image image = new Bitmap(@"c:\FakePhoto.jpg");
Image pThumbnail = image.GetThumbnailImage(100, 100, callback, new
IntPtr());
e.Graphics.DrawImage(
pThumbnail,
10,
10,
pThumbnail.Width,
pThumbnail.Height);
}
Public Function ThumbnailCallback() As Boolean
Return True
End Function
Private Sub GetThumbnail(ByVal e As PaintEventArgs)
Dim callback As New Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)
Dim image As Image = New Bitmap("c:\FakePhoto.jpg")
Dim pThumbnail As Image = image.GetThumbnailImage(100, 100, callback, New IntPtr())
e.Graphics.DrawImage(pThumbnail, 10, 10, pThumbnail.Width, pThumbnail.Height)
End Sub
Компиляция кода
Приведенный выше пример предназначен для использования с Windows Forms и требуется PaintEventArgs e
, что является параметром обработчика Paint событий. Чтобы запустить этот пример, выполните следующие шаги:
Создайте новое приложение Windows Forms.
Добавьте пример кода в форму.
Создайте обработчик для события Paint вашей формы
В обработчике Paint вызовите метод
GetThumbnail
и передайтеe
в PaintEventArgs.Найдите файл изображения, для которого нужно создать эскиз.
В методе
GetThumbnail
укажите путь к изображению и имя файла.Нажмите клавишу F5, чтобы запустить проект.
Изображение-эскиз размером 100 на 100 должно будет отобразиться в форме.
См. также
.NET Desktop feedback