需要把图象分解为二进制或十六进制,有什么 好的方法?(200分)

  • 主题发起人 主题发起人 fchyed
  • 开始时间 开始时间
F

fchyed

Unregistered / Unconfirmed
GUEST, unregistred user!
需要把图象分解为二进制或十六进制,然后再拼起来。

小弟对此一无所知,望各位大侠指点迷津!
 
十分关注!!!
 
用专门的软件分解行吗?
 
能不能用delphi自己编?

或者 专用的也可以,但是可以 分解再组合码?
重要的是 不要钱 ??
 
在数据库中用blob字段类型存储的图像数据即为二进制的
可用用Tblobfield类型进行操作
在大富翁的全文检索中用Tblobfield找一下就够你用的了
 
什么叫“把图象分解为二进制或十六进制,然后再拼起来”?
 
是这样的,我需要用另外一种协议传输,所以要求将 图片 转化为 二进制格式,再传过去

在另一端,把二进制 数据再拼出图来

最好能将图片 转成 16进制或2进制的 数据 存放到 txt 文件里。
文件里只有数字。
老板要求这样的,真的是漫无头绪 各位有经验的 指一条明路既可。谢了
 
:),图片文件本身就是二进制的,哪里还需要转换。你直接用TFileStream或BlockRead读出来
传过去就是了。
参考:http://tty.yyun.net/lovejingtao/htm/mystream.htm
 
哪可以把 图象 文件 存储到 txt 中?打开里面就是数字?

没办法,狗屁不懂得老板就这样要求.
 
faint,岂有此理...
可以用十六进制显示并存入txt文件,如下面的方法
但这绝对是一个愚蠢的主意。
-------------------------------------
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

const BUF_SIZE=1024;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
f:file of byte;
implementation

{$R *.DFM}

function Str2Hex(const data: array of byte; len: integer): string;
const
Hex:array[0..15] of char='0123456789ABCDEF';
var
i: Integer;
begin
setlength(result,length(data)*2);
for i := 0 to Len-1 do
begin
result[i*2+1]:=Hex[data shr 4];
result[i*2+2]:=Hex[data and $F];
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
NumRead:integer;
b:array[1..BUF_SIZE] of byte;
s: string;
begin

assignfile(f,'T0105.101');
Reset(f);
repeat
BlockRead(f,b,BUF_SIZE,NumRead);
if NumRead=0 then break;
s:=Str2Hex(b,NumRead); //将每个字节以16进制表示
Memo1.Lines.Add(s);
until (NumRead = 0);
closefile(f);

Memo1.Lines.SaveToFile('binfile.txt');

end;

end.
 
老兄的程序可以转化图片吧?

反过来也可以再组装吧?
 
他是说把图片分解成可以写入 txt 形式的文本发送,也就是 Base64 编码啊。
 
网络传输时这种编码很多的
base64编码就不错
 
那老大怎么弄这个base64编码?
 
多人接受答案了。
 
后退
顶部