我需要将一个图片文件转换成lgkAAHjac/KdxskABmZArAHE8kAsCcSMDBJg8QSg/BE+CIaB/7QEo+YTaT4DKqCp+6loEX4TGDAAeeYTqZ0BGyDJ/aS6k6BFeMRJCg1c6gmGP6lWYAYIeQkAV8igiRAZp/hNwKOAmBAg6GU8wUJkCBP0NS4FpCZFIqOSDPOJD3
lSw5+S/EhekUJ8IievhCQYUJTXL0R6gZISnph4pLAGIbv8HEL1OwA+fOJu这样的形式入库,如何转换?图片都不大
分值不够可以再加

解决方案 »

  1.   

    这个估计是BASE64编码,很简单的。
      

  2.   

    能具体说一下做法吗?每张图片都是存放在数据库中(oracle数据库的一个BLOB字段中),我要将他读出然后转换到access数据库中,但图片转换后的内容,必须是lgkAAHjac/KdxskABmZArAHE8kAsCcSMDBJg8QSg/BE+CIaB/7QEo+YTaT4DKqCp+6loEX4TGDAAeeYTqZ0BGyDJ/aS6k6BFeMRJCg1c6gmGP6lWYAYIeQkAV8igiRAZp/hNwKOAmBAg6GU8wUJkCBP0NS4FpCZFIqOSDPOJD3
    lSw5+S/EhekUJ8IievhCQYUJTXL0R6gZISnph4pLAGIbv8HEL1OwA+fOJu形式.
      

  3.   

    xml的 单元 NativeXml
    ObjectToXmlMain例子读出的结果象这样的。。
      

  4.   

    能具体给各实例吗,我并不是学delphi的,我主要是弄数据库的,因为得到的工具只能一个一个加图片,很麻烦,所以想些个程序成批转换。抱歉,别笑我菜
      

  5.   

    DelphiGuy() ,你好,你说应该是BASE64编码,怎么将oracle数据库一个blob字段的内容转换成BASE64编码?
      

  6.   

    我只是说象,还不能绝对肯定。
    不过从它只包含大小写字母、数字和+、/来看,完全符合BASE64的规则。
    BASE64就是把连续三个字节的24bits拆成4个6bits的单位,每个用一个可打印字符来表示,最初主要用于电子邮件的附件编码。
    6bits可以表示0~63,编码规则:
    0~25 用A~Z表示
    26~51 用a~z表示
    52~61 用0~9表示
    62、63用+、/表示
    原始数据不是3的整数倍的话,编码最后补上若干个=(等号)
    Indy中有BASE64的编解码组件。
      

  7.   

    其实你可以通过urtlEdeit之类的工具察看原始图片中实际存放的是什么字节是什么,在将转换过来的比较一下,如果幸运的话,你就解码了
      

  8.   

    DelphiGuy() 你好,如何用Indy中有BASE64的编解码组件对读取的blob字段内容进行编码,最终形成lgkAAHjac/KdxskABmZArAHE8kAsCcSMDBJg8QSg/BE+CIaB/7QEo+YTaT4DKqCp+6loEX4TGDAAeeYTqZ0BGyDJ/aS6k6BFeMRJCg1c6gmGP6lWYAYIeQkAV8igiRAZp/hNwKOAmBAg6GU8wUJkCBP0NS4FpCZFIqOSDPOJD3
    lSw5+S/EhekUJ8IievhCQYUJTXL0R6gZISnph4pLAGIbv8HEL1OwA+fOJu
    这种形式的字符串.
      

  9.   

    就用TIdEncoderMIME和TIdDecoderMIME就可以了,分别调用它们的Encode、DecodeToStream/DecodeToString方法,很简单的。
      

  10.   

    DelphiGuy() 你好,能给我一点将数据库(oracle)的blob字段内容转换成lgkAAHjac/KdxskABmZArAHE8kAsCcSMDBJg8QSg/BE+CIaB/7QEo+YTaT4DKqCp+6loEX4TGDAAeeYTqZ0BGyDJ/aS6k6BFeMRJCg1c6gmGP6lWYAYIeQkAV8igiRAZp/hNwKOAmBAg6GU8wUJkCBP0NS4FpCZFIqOSDPOJD3
    lSw5+S/EhekUJ8IievhCQYUJTXL0R6gZISnph4pLAGIbv8HEL1OwA+fOJu
    形式的具体代码吗,我用TIdEncoderMIME的Encode方法转换出来的字符串不是我想要的,我对delphi很菜,见笑了,非常感谢!!
      

  11.   

    你能把上述文本的对应源数据帖出来吗?
    这样就知道是不是用的BASE64编码了。
      

  12.   

    DelphiGuy() 你好,是这样的,源数据是oracle数据库中的blob字段,我要做的事是将blob字段的内容提取出来,将其转换后,将其填入access数据库的某张表中,以下转换后的access数据(贴出一条记录的内容):
    Name Alias Width Height Data
    绿藻 10 10 "lgkAAHjac/KdxskABmZArAHE8kAsCcSMDBJg8QSg/BE+CIaB/7QEo+YTaT4DKqCp+6loEX4TGDAAeeYTqZ0BGyDJ/aS6k6BFeMRJCg1c6gmGP6lWYAYIeQkAV8igiRAZp/hNwKOAmBAg6GU8wUJkCBP0NS4FpCZFIqOSDPOJD3
    lSw5+S/EhekUJ8IievhCQYUJTXL0R6gZISnph4pLAGIbv8HEL1OwA+fOJu"
    其中data字段就是存放转换后的图片内容.
      

  13.   

    图片那么大,转换后就那么一点吗?
    lgkAAHjac/KdxskABmZArAHE8kAsCcSMDBJg8QSg/BE+CIaB/7QEo+YTaT4DKqCp+6loEX4TGDAAeeYTqZ0BGyDJ/aS6k6BFeMRJCg1c6gmGP6lWYAYIeQkAV8igiRAZp/hNwKOAmBAg6GU8wUJkCBP0NS4FpCZFIqOSDPOJD3
    lSw5+S/EhekUJ8IievhCQYUJTXL0R6gZISnph4pLAGIbv8HEL1OwA+fOJu
    这段在BLOB中存储的是什么内容?
      

  14.   

    其实当时使用工具将图片文件导入到blob字段中,图片其实并不大,只有3k,而现在我是想把blob字段中内容转换成我说的形式。我利用后台程序读出来的blob字段内容类似于424D960900000000000036000000280000001F00000019000000010018000000000060090000C40E0000C40E00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000的内容
      

  15.   

    这样看来不是标准的BASE64编码,转换表不一样。
    你可以看看原始文件和它编码后的文本大小,如果是3:4,那么显然是一种类似BASE64的算法。