如何把 bmp ,gif 图片转换为二进制,然后又转换回来?多谢!(马上送分)
求助:各位大哥怎么把 bmp ,gif 图片转换为二进制,然后又转换回来?谢谢!(马上送分)
请教:
各位大哥怎么把 bmp ,gif 图片转换为二进制?
然后把 二进制 字符串转换 为 bmp ,gif 图片
procedure TForm1.Button1Click(Sender: TObject);
var
mystream: TStream;
I: Integer;
mybyte: Byte;
mystr: string;
begin
mystream := TMemoryStream.Create;
if Opendialog1.Execute then
begin
TMemoryStream(mystream).LoadFromFile(Opendialog1.FileName);
end;
image1.Picture.Bitmap.LoadFromStream(mystream);
mystream.Position := 0;
for I := 1 to mystream.Size do
begin
Application.ProcessMessages;
mystream.Read(mybyte, 1);
mystr := mystr+IntToHex(mybyte,2);
if ((I mod 14) = 0) then
begin
Memo1.Lines.Add(mystr);
mystr := ' ';
end;
end;
mystream.Free;
end;
这是一个把 BMP 图片转换为 二进制的程序(网上找的)
各位大哥,可以给我其他三个程序吗?
谢谢!
------解决方案--------------------
你用bmp.loadfromfile得到图片,bmp.scanline就能得到图片的数值,10进制、16进制知识你在看到的时候不一样写法,本质都是二进制啊!!!
------解决方案--------------------
你原来的代码(稍作修改), 可以将任何文件(能打开的)以二进制格式显示在一个Memo中的:
procedure TForm1.Button1Click(Sender: TObject);
var
mystream: TStream;
I: Integer;
mybyte: Byte;
mystr: string;
begin
mystream := TMemoryStream.Create;
try
if Opendialog1.Execute then
begin
TMemoryStream(mystream).LoadFromFile(Opendialog1.FileName); //Filename所对应的可以是任何一个文件
mystream.Position := 0;
mystr := ' ';
for I := 0 to mystream.Size - 1 do
begin
Application.ProcessMessages;
mystream.Read(mybyte, 1);
mystr := mystr + IntToHex(mybyte, 2);
if (I <> 0 ) and (I mod 16 = 0) then
begin
Memo1.Lines.Add(mystr);
mystr := ' ';
end;
end;
if mystr <> ' ' then Memo1.Lines.Add(mystr);
end;
finally
mystream.Free;
end;
end;
请教:
各位大哥怎么把 bmp ,gif 图片转换为二进制?
然后把 二进制 字符串转换 为 bmp ,gif 图片
procedure TForm1.Button1Click(Sender: TObject);
var
mystream: TStream;
I: Integer;
mybyte: Byte;
mystr: string;
begin
mystream := TMemoryStream.Create;
if Opendialog1.Execute then
begin
TMemoryStream(mystream).LoadFromFile(Opendialog1.FileName);
end;
image1.Picture.Bitmap.LoadFromStream(mystream);
mystream.Position := 0;
for I := 1 to mystream.Size do
begin
Application.ProcessMessages;
mystream.Read(mybyte, 1);
mystr := mystr+IntToHex(mybyte,2);
if ((I mod 14) = 0) then
begin
Memo1.Lines.Add(mystr);
mystr := ' ';
end;
end;
mystream.Free;
end;
这是一个把 BMP 图片转换为 二进制的程序(网上找的)
各位大哥,可以给我其他三个程序吗?
谢谢!
------解决方案--------------------
你用bmp.loadfromfile得到图片,bmp.scanline就能得到图片的数值,10进制、16进制知识你在看到的时候不一样写法,本质都是二进制啊!!!
------解决方案--------------------
你原来的代码(稍作修改), 可以将任何文件(能打开的)以二进制格式显示在一个Memo中的:
procedure TForm1.Button1Click(Sender: TObject);
var
mystream: TStream;
I: Integer;
mybyte: Byte;
mystr: string;
begin
mystream := TMemoryStream.Create;
try
if Opendialog1.Execute then
begin
TMemoryStream(mystream).LoadFromFile(Opendialog1.FileName); //Filename所对应的可以是任何一个文件
mystream.Position := 0;
mystr := ' ';
for I := 0 to mystream.Size - 1 do
begin
Application.ProcessMessages;
mystream.Read(mybyte, 1);
mystr := mystr + IntToHex(mybyte, 2);
if (I <> 0 ) and (I mod 16 = 0) then
begin
Memo1.Lines.Add(mystr);
mystr := ' ';
end;
end;
if mystr <> ' ' then Memo1.Lines.Add(mystr);
end;
finally
mystream.Free;
end;
end;