Member 12986530 Ответов: 1

Vb.net преобразование панели в файл. png с помощью кнопки


как я могу преобразовать панель в формат. png? я попытался преобразовать его в файл. pdf, но размер файла в pdf reader короткий (я делаю альбомный размер)

Что я уже пробовал:

'convert panel to .pdf

 Dim MyPdfFilePath As String = "C:\Documents\test\test.pdf"
    Dim PdfDoc As New iTextSharp.text.Document()
    Dim PdfImg As iTextSharp.text.Jpeg

    Using bm As New Bitmap(Panel1.Width, Panel1.Height)
        Panel1.DrawToBitmap(bm, New Rectangle(0, 0, bm.Width, bm.Height))
        Using ms As New MemoryStream
            bm.Save(ms, Imaging.ImageFormat.Jpeg)
            PdfImg = New iTextSharp.text.Jpeg(ms.GetBuffer)
        End Using
    End Using

    Using fs As New FileStream(MyPdfFilePath, FileMode.Create, FileAccess.Write, FileShare.None)

        Using pdfWrite As iTextSharp.text.pdf.PdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(PdfDoc, fs)

            PdfDoc.Open()
            PdfDoc.Add(PdfImg)
            PdfDoc.Close()
        End Using
    End Using

    PdfDoc.Dispose()


РЕДАКТИРОВАТЬ теперь я могу преобразовать панель в файл. png, используя приведенный ниже фрагмент кода. Но теперь моя проблема заключается в том, как я могу увеличить разрешение png ?

'panel convert to .png format
Try
        Using bmp = New Bitmap(Panel1.Width, Panel1.Height)
            Panel1.DrawToBitmap(bmp, New Rectangle(0, 0, bmp.Width, bmp.Height))
            bmp.Save("C:\Documents\test\image.png")
        End Using
        MessageBox.Show("Image saved successfully.")
    Catch
        MessageBox.Show("Error.....")
    End Try
End Sub

Maciej Los

Заявление: "размер-это моя проблема"- совсем не информативно!

Member 12986530

о Извините я забыл его отредактировать

1 Ответов

Рейтинг:
1

Ralf Meier

Например вот так :

Using bmp = New Bitmap(Panel1.Width, Panel1.Height)
      Panel1.DrawToBitmap(bmp, New Rectangle(0, 0, bmp.Width, bmp.Height))

      Dim bmp2 As New Bitmap(bmp.Width * 3, bmp.Height * 3)
      Dim gr As Graphics = Graphics.FromImage(bmp2)
      gr.DrawImage(bmp, New Rectangle(0, 0, bmp2.Width, bmp2.Height))

      bmp2.Save("C:\Documents\test\image.png")
End Using


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