Advertisement
datatheoz

Image To HTML

Feb 9th, 2020
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 3.48 KB | None | 0 0
  1. Public Shared Function ImageToHtml(strImageFile As String) As String
  2.         Using b As New Bitmap(strImageFile)
  3.             Dim w As String = b.Width.ToString
  4.             Dim p As Color
  5.             Dim clr As String
  6.             Dim sb As New System.Text.StringBuilder
  7.  
  8.             For y As Integer = 0 To b.Height - 1
  9.                 sb.Append("<tr><td height=""1px"" style=""width:" & w & "px;background:linear-gradient(to right,")
  10.  
  11.                 For x = 0 To b.Width - 1
  12.                     p = b.GetPixel(x, y)
  13.                     clr = System.Drawing.ColorTranslator.ToHtml(p)
  14.                     sb.Append(clr & ",")
  15.                 Next
  16.  
  17.                 sb.Remove(sb.Length - 1, 1)
  18.                 sb.Append(")""></td></tr>")
  19.             Next
  20.  
  21.             Return "<div style=""display:inline-block;vertical-align:middle""><table cellpadding=""0px"" cellspacing=""0px"" style=""width:" & w & "px""><tbody>" & sb.ToString & "</tbody></table></div>"
  22.         End Using
  23. End Function
  24.  
  25. 'Usage:
  26. Dim s As String = "C:\YOURIMAGE.jpg"
  27. Dim result As String = ImageToHtml(s)
  28. Debug.Print(result)
  29.  
  30. 'Resize support:
  31.  
  32.     Public Shared Function ImageToHtml(b As Bitmap) As String
  33.         Dim w As String = b.Width.ToString
  34.         Dim p As Color
  35.         Dim clr As String
  36.         Dim sb As New System.Text.StringBuilder
  37.  
  38.         For y As Integer = 0 To b.Height - 1
  39.             sb.Append("<tr><td height=""1px"" style=""width:" & w & "px;background:linear-gradient(to right,")
  40.  
  41.             For x = 0 To b.Width - 1
  42.                 p = b.GetPixel(x, y)
  43.                 clr = System.Drawing.ColorTranslator.ToHtml(p)
  44.                 sb.Append(clr & ",")
  45.             Next
  46.  
  47.             sb.Remove(sb.Length - 1, 1)
  48.             sb.Append(")""></td></tr>")
  49.         Next
  50.  
  51.         Return "<div style=""display:inline-block;vertical-align:middle""><table cellpadding=""0px"" cellspacing=""0px"" style=""width:" & w & "px""><tbody>" & sb.ToString & "</tbody></table></div>"
  52.     End Function
  53.  
  54.     Public Shared Function ResizeImage(ByVal image As Image, ByVal width As Integer, ByVal height As Integer) As Bitmap
  55.         'https://stackoverflow.com/questions/1922040/how-to-resize-an-image-c-sharp
  56.  
  57.         Dim destRect = New Rectangle(0, 0, width, height)
  58.         Dim destImage = New Bitmap(width, height)
  59.         destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution)
  60.  
  61.         Using g = Graphics.FromImage(destImage)
  62.             g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy
  63.             g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality
  64.             g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
  65.             g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
  66.             g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality
  67.  
  68.             Using w = New System.Drawing.Imaging.ImageAttributes()
  69.                 w.SetWrapMode(System.Drawing.Drawing2D.WrapMode.TileFlipXY)
  70.                 g.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, w)
  71.             End Using
  72.         End Using
  73.  
  74.         Return destImage
  75.     End Function
  76.  
  77. 'Usage:
  78.         Dim s As String = "C:\YOURIMAGE.jpg"
  79.  
  80.         Using b As New Bitmap(s)
  81.             Using resizedImage As Bitmap = ResizeImage(b, 72, 72)
  82.                 Dim result As String = ImageToHtml(resizedImage)
  83.                 Debug.Print(result)
  84.             End Using
  85.         End Using
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement