Link to home
Start Free TrialLog in
Avatar of JoeBo747
JoeBo747

asked on

Convert Base64 string to jpeg

I recently accepted an answer to a question I submitted on converting a base64 string to a jpeg.  The answer was correct when using the supplied base64 that the question participant used, he did suggest that I supply my base64 string.  Anyhow when I have attempted to use the code on my string and I get the same black square that I have always returned.

The original question is here.
https://www.experts-exchange.com/questions/28546044/Convert-Base64-string-to-jpeg.html

The answer accepted is here.
Imports System.IO

Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Try
            Dim txt As String = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" ' red dot from wikipedia
            If txt.StartsWith("data:") Then
                Dim poscomma As Integer = txt.IndexOf(",") + 1
                txt = txt.Substring(poscomma, txt.Length - poscomma)
            End If

            Dim ms As New MemoryStream(Convert.FromBase64String(txt))

            Dim bm As Bitmap = Bitmap.FromStream(ms) '<---load bitmap from memory stream

            'create new memory stream
            Dim jpgms As New MemoryStream()
            jpgms.Position = 0
            bm.Save(jpgms, System.Drawing.Imaging.ImageFormat.Jpeg) '<---convert to jpeg

            PictureBox1.Image = Image.FromStream(jpgms)

            'jpgms.toArray() '<--used as data source for sql 2008 image
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
End Class

Open in new window

Are you able to do this with my base64 string. which is below?
data:image/png;base64,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

Open in new window

Avatar of it_saige
it_saige
Flag of United States of America image

I get a black box when I use your base64 string:User generated image
And a red dot when I use his:User generated image
-saige-
And when I added
PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize

Open in new window


The picture box change size to what looks like a banner size and still displayed an all black box:User generated image
-saige-
Avatar of JoeBo747
JoeBo747

ASKER

Yes that's my point,  If you do not change the format of the image you get back form the base64 string you get an image containing a signature.User generated image
I need to change the image to a jpeg,  when I do I get the black box!
Ah.  I understand now.  I got your answer.  Had to do a little experimenting.  It comes down to the fact that the original base64 string is a transparency image and bitmap does not support transparency, so the bitmap draws it as all black.  

Revised code using extension methods:
Imports System.Drawing.Imaging
Imports System.Linq
Imports System.IO

Module Extensions
	Private encoders() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders()

	<System.Runtime.CompilerServices.Extension()> _
	Public Function ToJpeg(ByVal ImageIn As Image, Optional ByVal Quality As Integer = 100) As Image
		Dim encoder As ImageCodecInfo = (From item As ImageCodecInfo In encoders Where item.MimeType.Equals("image/jpeg") Select item).FirstOrDefault
		If Not encoder Is Nothing Then
			Dim parameters As EncoderParameters = New EncoderParameters(1)
			'Set Quality Parameter
			parameters.Param(0) = New EncoderParameter(System.Drawing.Imaging.Encoder.Quality, Quality)
			'Save to a Memory Stream
			Dim ms As New MemoryStream
			ImageIn.Save(ms, encoder, parameters)
			Return Image.FromStream(ms)
		Else
			Return Nothing
		End If
	End Function

	<System.Runtime.CompilerServices.Extension()> _
	Public Function ToImage(ByVal BitMapIn As Bitmap, ByVal Quality As Integer) As Image
		Return Image.FromStream(ToJpegToStream(BitMapIn, Quality))
	End Function

	<System.Runtime.CompilerServices.Extension()> _
	Public Function ToJpegToStream(ByVal BitMapIn As Bitmap, ByVal Quality As Integer, Optional ByVal CompressPct As Integer = -1) As MemoryStream
		Dim encoder As ImageCodecInfo = (From item As ImageCodecInfo In encoders Where item.MimeType.Equals("image/jpeg") Select item).FirstOrDefault
		If Not encoder Is Nothing Then
			Dim parameters As EncoderParameters = New EncoderParameters(1)
			'Set Quality Parameter
			parameters.Param(0) = New EncoderParameter(System.Drawing.Imaging.Encoder.Quality, Quality)
			'Save to a Memory Stream
			Dim ms As New MemoryStream
			BitMapIn.Save(ms, encoder, parameters)
			Return ms
		Else
			Return Nothing
		End If
	End Function

	<System.Runtime.CompilerServices.Extension()> _
	Public Function ToBitmap(ByVal StreamIn As MemoryStream) As Bitmap
		Dim image As Image = image.FromStream(StreamIn)
		Dim bmp As New Bitmap(image, image.Width, image.Height)
		Dim graphics As Graphics = graphics.FromImage(bmp)
		graphics.FillRectangle(New SolidBrush(Color.White), New Rectangle(0, 0, image.Width, image.Height))
		graphics.DrawImage(image, New Rectangle(0, 0, image.Width, image.Height))
		Return bmp
	End Function
End Module

Public Class Form1

	Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		Try
			Dim txt As String = "data:image/png;base64,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"	' red dot from wikipedia
			If txt.StartsWith("data:") Then
				Dim poscomma As Integer = txt.IndexOf(",") + 1
				txt = txt.Substring(poscomma, txt.Length - poscomma)
			End If

			Dim ms As New MemoryStream(Convert.FromBase64String(txt))
			Dim bmp As Bitmap = ms.ToBitmap()

			'create new jpg from bitmap
			Dim jpg As Image = bmp.ToImage(100)

			PictureBox1.Image = jpg
			PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize

			'jpgms.toArray() '<--used as data source for sql 2008 image
		Catch ex As Exception
			MsgBox(ex.ToString)
		End Try
	End Sub
End Class

Open in new window


Produces the following output:User generated image
-saige-
Thanks for your work,  but unfortunately the code doesn't work for me!  I have copied your module into my test project and implemented the code exactly as you have shown,  the result is a broken picture box as shown in the image below,  am I missing something?

User generated image
SOLUTION
Avatar of it_saige
it_saige
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Now I have a dilemma! The code from it sage doe's exactly what I asked for in my  question,  it  fixes  my bitmap and answers the question thank you.  The later arrival of Ark also supplies the answer and I favour this as the fix mainly because of the more lightweight approach.  The question is now how to distribute the points it sage has stuck with this but Ark is the one I will implement in my app. Is 50/50 fair? Its my choice but I wish to be fair,
50/50 works for me.  Just glad you got your answer...

-saige-
50/50 is Ok :)
BTW, why do you need png->jpeg conversion? If resulting array size is a goal, gif is much better(smaller) for signatures.
Thanks to both of you for your contribution s,  I am glad you agree and I will award the points.   The page is being supplied via a third party and I have no control over this
 I also have to write the stream to the database in a format again dictated by a third party. I am very pleased by the outcome thank you both once again.