Class MainWindow
Private Sub SaveToBmp(visual As FrameworkElement, fileName As String)
Dim encoder = New BmpBitmapEncoder()
SaveUsingEncoder(visual, fileName, encoder)
End Sub
Private Sub SaveToPng(visual As FrameworkElement, fileName As String)
Dim encoder = New PngBitmapEncoder()
SaveUsingEncoder(visual, fileName, encoder)
End Sub
Private Sub SaveUsingEncoder(visual As FrameworkElement, fileName As String, encoder As BitmapEncoder)
Dim bitmap As New RenderTargetBitmap(CInt(visual.ActualWidth), CInt(visual.ActualHeight), 96, 96, PixelFormats.Pbgra32)
bitmap.Render(visual)
Dim frame As BitmapFrame = BitmapFrame.Create(bitmap)
encoder.Frames.Add(frame)
Using stream = File.Create(fileName)
encoder.Save(stream)
End Using
End Sub
Private Sub load(sender As Object, e As RoutedEventArgs)
Me.SaveToPng(MyGrid, "image.png")
Me.SaveToBmp(MyImage, "image.bmp")
End Sub
Public Sub New()
InitializeComponent()
AddHandler Me.Loaded, AddressOf load
'Here i set MyImage source
'MyImage.Source = MyImageSource
End Sub
End Class
Q2xhc3MgTWFpbldpbmRvdwoKICAgIFByaXZhdGUgU3ViIFNhdmVUb0JtcCh2aXN1YWwgQXMgRnJhbWV3b3JrRWxlbWVudCwgZmlsZU5hbWUgQXMgU3RyaW5nKQogICAgICAgIERpbSBlbmNvZGVyID0gTmV3IEJtcEJpdG1hcEVuY29kZXIoKQogICAgICAgIFNhdmVVc2luZ0VuY29kZXIodmlzdWFsLCBmaWxlTmFtZSwgZW5jb2RlcikKICAgIEVuZCBTdWIKCiAgICBQcml2YXRlIFN1YiBTYXZlVG9QbmcodmlzdWFsIEFzIEZyYW1ld29ya0VsZW1lbnQsIGZpbGVOYW1lIEFzIFN0cmluZykKICAgICAgICBEaW0gZW5jb2RlciA9IE5ldyBQbmdCaXRtYXBFbmNvZGVyKCkKICAgICAgICBTYXZlVXNpbmdFbmNvZGVyKHZpc3VhbCwgZmlsZU5hbWUsIGVuY29kZXIpCiAgICBFbmQgU3ViCgogICAgUHJpdmF0ZSBTdWIgU2F2ZVVzaW5nRW5jb2Rlcih2aXN1YWwgQXMgRnJhbWV3b3JrRWxlbWVudCwgZmlsZU5hbWUgQXMgU3RyaW5nLCBlbmNvZGVyIEFzIEJpdG1hcEVuY29kZXIpCiAgICAgICAgRGltIGJpdG1hcCBBcyBOZXcgUmVuZGVyVGFyZ2V0Qml0bWFwKENJbnQodmlzdWFsLkFjdHVhbFdpZHRoKSwgQ0ludCh2aXN1YWwuQWN0dWFsSGVpZ2h0KSwgOTYsIDk2LCBQaXhlbEZvcm1hdHMuUGJncmEzMikKCiAgICAgICAgYml0bWFwLlJlbmRlcih2aXN1YWwpCiAgICAgICAgRGltIGZyYW1lIEFzIEJpdG1hcEZyYW1lID0gQml0bWFwRnJhbWUuQ3JlYXRlKGJpdG1hcCkKICAgICAgICBlbmNvZGVyLkZyYW1lcy5BZGQoZnJhbWUpCgogICAgICAgIFVzaW5nIHN0cmVhbSA9IEZpbGUuQ3JlYXRlKGZpbGVOYW1lKQogICAgICAgICAgICBlbmNvZGVyLlNhdmUoc3RyZWFtKQogICAgICAgIEVuZCBVc2luZwogICAgRW5kIFN1YgoKICAgIFByaXZhdGUgU3ViIGxvYWQoc2VuZGVyIEFzIE9iamVjdCwgZSBBcyBSb3V0ZWRFdmVudEFyZ3MpCiAgICAgICAgTWUuU2F2ZVRvUG5nKE15R3JpZCwgImltYWdlLnBuZyIpCiAgICAgICAgTWUuU2F2ZVRvQm1wKE15SW1hZ2UsICJpbWFnZS5ibXAiKQogICAgRW5kIFN1YgoKCiAgICBQdWJsaWMgU3ViIE5ldygpCgogICAgICAgIEluaXRpYWxpemVDb21wb25lbnQoKQogICAgICAgIEFkZEhhbmRsZXIgTWUuTG9hZGVkLCBBZGRyZXNzT2YgbG9hZAoKCSdIZXJlIGkgc2V0IE15SW1hZ2Ugc291cmNlCgknTXlJbWFnZS5Tb3VyY2UgPSBNeUltYWdlU291cmNlCiAgICAKICAgIEVuZCBTdWIKCiAgIApFbmQgQ2xhc3MK