2009-03-10 2 views
1

Я пишу код для создания изображений - по существу у меня есть исходное изображение, которое является большим и включает прозрачные области.Изменение размера изображения с альфа-каналом

Я использую GDI +, чтобы открыть это изображение и добавить дополнительные объекты.

Что я хочу сделать дальше, это сохранить это новое изображение намного меньше, поэтому я использовал конструктор Bitmap, который принимает исходный объект изображения, а также высоту и ширину, а затем сохранил это.

Я ожидал, что альфа-канал будет сглажен, как цветовые каналы, но этого не произошло - это привело к получению полупрозрачных пикселей, но в целом он очень блочный. Что дает?

Using img As New Bitmap("source100x100.png") 
''// Drawing stuff 
Using simg As New Bitmap(img, 20, 20) 
    simg.Save("target20x20.png") 
End Using 
End Using 

Edit: Я думаю, что я хочу SuperSampling, как то, что Paint.NET ли при установке на «Лучшее качество»

ответ

2

Нарисуйте изображение на новом растровом изображении вместо создания нового растрового изображения из изображения ,

Создайте пустую растровое изображение, просто указав размер, а затем используйте метод Graphics.FromImage для создания объекта Graphics для растрового изображения. Используйте метод DrawImage, чтобы нарисовать изображение на новом растровом изображении.

В объекте Graphics есть такие объекты, как Interpolationmode и PixelOffsetMode, которые вы можете использовать для управления масштабированием и рисованием изображения.

+0

SmoothingMode тоже помог. Спасибо. – Hafthor

 Смежные вопросы

  • Нет связанных вопросов^_^