您的位置:首页 >> 编程开发 >> .NET >> 其它 >> 正文
其它 RSS
 

将文本藏入图片选择自VirleneCheng的Blog

http://www.rdxx.com 02年09月12日 11:34 互联网 我要投稿

关键词: 选择 , 文本 , 图片 , NEC , Blog

一般看来文字与图片是毫不相同的,但是它们却有共同点。图片是由一个个点组成的,而这些点的颜色值可由数字组成,文字可由ASCII码表示,这就使得数字成为它们之间沟通道桥梁。因此就可以将文本藏入图片中。

这可以用Visual Basic 6.0实现,首先我们将文字转化为数字,再将图片中的每个点的RGB值取出,将数字每三个分别与R值,G值,B值相加或相减,接着把RGB值还原为图片中的点,至此我们已经将文本藏入图片。要取出文本怎么办呢?我们可以把源图片与目标图片进行对比,将到的差值转化为文本,就实现了文本的还原。

 

具体作法:先建立窗体文件frmPictureText.frm和模块文件modPictureText.bas

模块文件:

Public Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal _

hObject As Long, ByVal nCount As Long, lpObject As Any) As Long

'用于获得图片的象素

 

Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x _

As Long, ByVal y As Long) As Long             '用于获得图片指定点的RGB值

Public Type BITMAP

        bmType As Long

        bmWidth As Long

        bmHeight As Long

        bmWidthBytes As Long

        bmPlanes As Integer

        bmBitsPixel As Integer

        bmBits As Long

End Type

 

Function HexDec(Number As String) As Integer     '将十六进制转化为十进制

Dim n As Integer, dec As String, tmp As Integer

For n = 1 To Len(Number)

    dec = Mid(Number, n, 1)

    If Asc(dec) >= 65 Then

        dec = UCase(dec)

        dec = Format(Asc(dec) - 55)

    End If

    tmp = Val(dec) * 16 ^ (Len(Number) - n)

    HexDec = HexDec + tmp

Next n

End Function

窗体文件:建立两个图片框:picSource用于显示源图片,picObject用于显示目标图片,

建立两个文本框:txtSource用于显示源文本,txtObject用于显示还原的文本,并设置为各多行显示,建立两个命令按钮:cmdTextToPicture用于把文本藏入图片,cmdPictureToText用于还原文本。

Private Sub Form_Load()

picSource.AutoRedraw = True: picObject.AutoRedraw = True

picSource.AutoSize = True: picObject.AutoSize = True

picSource.Picture = LoadPicture("c:\test.bmp")

picObject.Height = picSource.Height        '设置目标图片框的Height和

picObject.Width = picSource.Width          'Width属性与源图片相同,保证

                                           '目标图片的大小和源文件相同

End Sub

 

Private Sub cmdTextToPicture_Click()

Dim numX As Integer, chrTmp As String, numTmp As Integer, numY As Integer,

共4页  1 2 3 4


 
 
标签: 选择 , 文本 , 图片 , NEC , Blog 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站