Я пытаюсь создать изображение с измененным размером из растрового изображения, установить новую высоту / ширину и новое разрешение и сохранить его в PNG. Я могу сделать это либо непосредственно из A) Image.FromFile(filename)
или B) New Bitmap(imageSource)
, чтобы создать растровое изображение A для передачи в B . Оба работают хорошо, schmokay, но A не позволяет мне устанавливать новую ширину / высоту при создании (но это позволяет мне сохранять значения с useIcm=True
) и B не позволяет мне сохранять значения.
Хорошо, теперь немного кода и примеров:
Dim sourceBitmap As New
Bitmap(imagePath & myImage1Name)
<-не очень хорошо (перегрузка # 1). Не сохраняет
такие вещи, как <code>HorizontalResolution
или PixelFormat
на .Save
Dim sourceBitmap2 As Bitmap = Image.FromFile(imagePath & myImage1Name,
True)
<- плохо (перегрузка # 5). это <em>делает
сохранить такие вещи, как
HorizontalResolution
или
PixelFormat
на .Save
, но это
не позволяет мне инициализировать изображение в новом размере.
Dim targetBitmap As New
Bitmap(sourceBitmap2, newWidth,
newHeight)
sourceBitmap2
(см. № 2 выше) было
инициализируется с useIcm=True
, это
не важно, как только я прошел его
в качестве источника в targetBitmap
.
По сути, я ищу способ создания нового растрового изображения с помощью чего-то вроде useIcm=True
и , устанавливающих ширину / высоту одновременно (Width
/ Height
считываются только свойства после его создания).
Я также прошел по маршруту Graphics.DrawImage
, и он такой же - Graphics.FromImage(sourceBitmap)
не сохраняет значения.
Зачем мне нужно, чтобы эти значения были сохранены? Потому что мне нужно преобразовать эти изображения в PNG (для размера файла) с новым разрешением и сохранить те же физические размеры (ш / ч в дюймах) для печати. Я знаю новые ширину / высоту пикселя, необходимые на основе значений разрешения, которые я передам с .SetResolution(xDpi,yDpi)
, чтобы сохранить физические размеры, так что это не проблема. Проблема в том, что такие вещи, как PixelFormatSize
, должны оставаться неизменными (да, я пробовал EncoderParameters
- они не работают. Я могу дать вам кровавые подробности, если хотите, но на данный момент достаточно сказать, что они просто не работает).
Уфф, снял это с моей груди! Хорошо, кто-нибудь, кто действительно знает, как все это работает, может помочь?
РЕДАКТИРОВАТЬ : Типы файлов, необходимые для преобразования в PNG: BMP, TIF, GIF, WMF, EMF.