Основы для миниатюры довольно прямо вперед:
- Создать новое растровое изображение нужного размера
- Нарисовать оригинал к нему; Обращаясь к меньшему BMP, миниатюра
Для сохранения вы можете добавить «.png» к имени файла. Так как ваше изображение в picbox, получить его за меньшие ввода:
Dim bmp As Bitmap = CType(picbox.Image, Bitmap)
' bmpt is the thumbnail
Dim bmpt As New Bitmap(100, 100)
Using g As Graphics = Graphics.FromImage(bmpt)
' draw the original image to the smaller thumb
g.DrawImage(bmp, 0, 0,
bmpt.Width + 1,
bmpt.Height + 1)
End Using
bmpt.Save("example_file.PNG", System.Drawing.Imaging.ImageFormat.Png)
Примечания:
Bitmap
вы создаете должны быть утилизированы, когда вы сделали с ним.
- Если сохранить все, что вам нужно сделать, добавьте
bmpt.Dispose()
в качестве последней строки.
- Если вышеприведенный метод используется для возврата эскиза, то код, который получает новый эскиз, должен утилизировать его.
- Если исходное изображение открыто (например, показано в
PictureBox
), вы не сможете сохранить его с тем же именем. Измените имя немного, например «myFoo», сохраненное как «myFoo_t».
- Приведенный выше код предполагает квадратное изображение. Если высота и ширина не совпадают, вам также необходимо масштабировать растровое изображение миниатюр, чтобы предотвратить искажение эскиза. То есть, вычисляйте либо высоту, либо ширину нового
Bitmap
от другого.
Следует отметить, что если исходное изображение/квадратик не является квадратным, возможно, вы захотите масштабировать изображение, а не делать явный 100x100 палец, чтобы он не искажался. – Plutonix
Как масштабировать изображение? Я еще не знаком с графическими манипуляциями в .net. –
Это не ЧИСТАЯ вещь, масштабирование - это просто арифметика. Вам просто нужно сделать какое-то простое разделение, прежде чем рисовать. Попробуйте и поставите вопрос, если вы застряли. – Plutonix