Sep 3, 2010 08:09 PM
(This post was last modified: Sep 3, 2010 10:15 PM by kobac.)
Simple way to store data as real image :D
[img]http://img818.imageshack.us/img818/9107/imagecrypt.gif[/img]
[img]http://img130.imageshack.us/img130/5156/imagesha.png[/img]
Crypt:
DeCrypt:
Needed Functions:
Simple Usage:
Source: http://www.mediafire.com/download.php?4bwdc49ib98nz59
Update: (using png image format, file can be uploaded to imageshack)
code(png):
Spoiler (Click to View)
[img]http://img818.imageshack.us/img818/9107/imagecrypt.gif[/img]
[img]http://img130.imageshack.us/img130/5156/imagesha.png[/img]
Crypt:
Code
Function pixelator(ByVal a As String) As Image
a = Convert.ToBase64String(New System.Text.UTF8Encoding().GetBytes(CompressString(a)))
Dim imageholder As Bitmap
Dim autosize As Integer = System.Math.Sqrt(a.Count) + 2
imageholder = New Bitmap(autosize, autosize)
Dim G As Graphics = Graphics.FromImage(imageholder)
Dim fff As Integer = 0
While fff <= a.Count - 1
For Y = 1 To imageholder.Height - 1
For X = 1 To imageholder.Width - 1
If fff <= a.Count - 1 Then
imageholder.SetPixel(X, Y, Color.FromArgb(Convert.ToInt32(a.Chars(fff)), 0, 0))
fff = fff + 1
End If
Next X
Next Y
End While
Return imageholderCode
Function depixelator(ByVal a As Image) As String
Dim retrievestr As String = ""
Dim xmax As Integer
Dim ymax As Integer
xmax = a.Width - 1
ymax = a.Height - 1
For y = 1 To ymax
For x = 1 To xmax
With CType(a, Bitmap).GetPixel(x, y)
retrievestr = retrievestr & Convert.ToChar(.R)
End With
Next x
Next y
retrievestr = New System.Text.UTF8Encoding().GetString(Convert.FromBase64String(retrievestr.Replace(Convert.ToChar(0), "")))
retrievestr = DecompressString(retrievestr)
Return retrievestr
End FunctionCode
Public Shared Function CompressString(ByVal text As String) As String
Dim buffer__1 As Byte() = Encoding.UTF8.GetBytes(text)
Dim memoryStream = New IO.MemoryStream()
Using gZipStream = New IO.Compression.GZipStream(memoryStream, CompressionMode.Compress, True)
gZipStream.Write(buffer__1, 0, buffer__1.Length)
End Using
memoryStream.Position = 0
Dim compressedData = New Byte(memoryStream.Length - 1) {}
memoryStream.Read(compressedData, 0, compressedData.Length)
Dim gZipBuffer = New Byte(compressedData.Length + 3) {}
Buffer.BlockCopy(compressedData, 0, gZipBuffer, 4, compressedData.Length)
Buffer.BlockCopy(BitConverter.GetBytes(buffer__1.Length), 0, gZipBuffer, 0, 4)
Return Convert.ToBase64String(gZipBuffer)
End Function
Public Shared Function DecompressString(ByVal compressedText As String) As String
Dim gZipBuffer As Byte() = Convert.FromBase64String(compressedText)
Using memoryStream = New IO.MemoryStream()
Dim dataLength As Integer = BitConverter.ToInt32(gZipBuffer, 0)
memoryStream.Write(gZipBuffer, 4, gZipBuffer.Length - 4)
Dim buffer = New Byte(dataLength - 1) {}
memoryStream.Position = 0
Using gZipStream = New GZipStream(memoryStream, CompressionMode.Decompress)
gZipStream.Read(buffer, 0, buffer.Length)
End Using
Return Encoding.UTF8.GetString(buffer)
End Using
End FunctionCode
Crypt: PictureBox1.Image = pixelator(RichTextBox1.Text)
DeCrypt: RichTextBox1.Text = depixelator(PictureBox1.Image)Update: (using png image format, file can be uploaded to imageshack)
code(png):
Spoiler (Click to View)

