如何把一张JPEG图片转换成二进制流

winstonbonaparte 2009-08-25 03:00:32
加载一张图片后转换成^Byte类型的值,如何操作?
...全文
871 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
llf3765169 2012-03-07
  • 打赏
  • 举报
回复
_Jpeg.LoadFromFile(OD.FileName);
_Jpeg.SaveToStream(MS);
为什么会出现MS=0 ,二进制流没有存进去的现象?
kaishiyouxi 2009-09-20
  • 打赏
  • 举报
回复
。。。。
shanqiu 2009-08-26
  • 打赏
  • 举报
回复
这个太简单了,声明一个内存流或文件流对象,再调用jpg对象的savetostream就可以了
ahjoe 2009-08-26
  • 打赏
  • 举报
回复

图片本身就是个“二进制流”,还转啥?

imho888 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 winstonbonaparte 的回复:]
我这样操作,但好象不对
Delphi(Pascal) codevar
PicFile : TFileStream;
Size1 : Integer;
PData1 : PByte//是用findfirst取出值来的
Size1 := Sr.Size;
PicFile := TFileStream.Create(PicPath+ Sr.Name,fmOpenRead);
PicFile.Read(PData1,Size1);//这样好象是可以保存到PData1,但是我在做为参数传入VC的一个DLL时报错了,我不知道是不是我这里保存的有问题
[/Quote]

PData1 : PByte
指针需要分配空间的
Seamour 2009-08-26
  • 打赏
  • 举报
回复
图片本身就是个“二进制流”,还转啥?
gaoqi5037 2009-08-26
  • 打赏
  • 举报
回复
var
_Jpeg: TJPEGImage;
MS: TMemoryStream;
B: array of Byte;
i: integer;
function IntToHex(_Int: integer): string;
begin

end;
begin
if not OD.Execute then Exit;
MS := TMemoryStream.Create;
try
_Jpeg := TJPEGImage.Create;
try
_Jpeg.LoadFromFile(OD.FileName);
_Jpeg.SaveToStream(MS);
SetLength(B, MS.Size);
Move(MS.Memory^, B[0], MS.Size);
finally
_Jpeg.Free;
end;
finally
MS.Free;
end;
end;
winstonbonaparte 2009-08-25
  • 打赏
  • 举报
回复
我这样操作,但好象不对

var
PicFile : TFileStream;
Size1 : Integer;
PData1 : PByte
//是用findfirst取出值来的
Size1 := Sr.Size;
PicFile := TFileStream.Create(PicPath + Sr.Name,fmOpenRead);
PicFile.Read(PData1,Size1);//这样好象是可以保存到PData1,但是我在做为参数传入VC的一个DLL时报错了,我不知道是不是我这里保存的有问题

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧