В настоящее время у меня есть сторонний элемент управления, который генерирует метафайл. Я могу сохранить файл .wmf на диск без проблем. Проблема в том, как сделать метафайл в виде файла Tiff.VB.net Сохранение метафайла/EMF в виде растрового изображения (.tiff)
В настоящее время у меня есть следующий код, чтобы получить мой метафайл и сохранить его.
Dim mf As Metafile = page.GetImage(TXTextControl.Page.PageContent.All)
Dim enhMetafileHandle As IntPtr = mf.GetHenhmetafile()
Dim h As IntPtr
Dim bufferSize As UInteger = GetEnhMetaFileBits(enhMetafileHandle, 0, h)
Dim buffer(CInt(bufferSize)) As Byte
GetEnhMetaFileBits(enhMetafileHandle, bufferSize, buffer)
Dim msMetafileStream As New MemoryStream
msMetafileStream.Write(buffer, 0, CInt(bufferSize))
Dim baMetafileData() As Byte
baMetafileData = msMetafileStream.ToArray
Dim g As Graphics = Graphics.FromImage(mf)
mf.Dispose()
File.WriteAllBytes("c:\a.wmf", baMetafileData)
конец югу
_ общественностью Общие функции GetEnhMetaFileBits (ByVal hEMF Как System.IntPtr, ByVal nРазмер: Как UInteger, ByVal lpData Как IntPtr) Как UInteger End Function
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll", EntryPoint:="GetEnhMetaFileBits")> _
Public Shared Function GetEnhMetaFileBits(<System.Runtime.InteropServices.InAttribute()> ByVal hEMF As System.IntPtr, ByVal nSize As UInteger, ByVal lpData() As Byte) As UInteger
End Function
I «Я пробовал все виды IMAGE и графических вызовов и просто не могу сохранить метафайл как .tiff. Любые предложения были бы замечательными. Я даже попытался создать новое растровое изображение и нарисовать на нем метафайл. Я всегда получаю исключение GDI.
Это работало, я просто запутался с ДПИ, чтобы получить мой .tiff быть высокого качества. – pehaada
Метафайл является масштабируемым. Сделайте растровое изображение настолько большим, насколько вы этого хотите, используйте перегрузку DrawImage, которая принимает прямоугольник. –