jpeg error #53 这是什么意思啊 谢谢了 导入图片时,出现jpeg error #53 这是什么意思啊 谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 uses 上 ImageEn 或 TJPGImage 单元试试看 http://blog.csdn.net/ghyghost/archive/2003/07/21/15773.aspx 你导入的是jpg格式的图片吗?应该是导入图片的格式不对~~ 格式是不对是 error 42, error 53 应该是从流中还原有误,要不就是帧{Copy picture (Jpeg) to the buffer and return number of copied bytes} function CopyPictureToStream(PictureToCopy: TImage; MyBuffer: PAnsiChar): Integer; var FJPEG: TJPEGImage; FMemoryStream: TMemoryStream; CurrentImageByte: Byte; i: Integer; begin Result := 0; {Get current frame from TImage} FJPEG := TJPEGImage.Create; FMemoryStream := TMemoryStream.Create; try if Assigned(PictureToCopy) then begin FMemoryStream.Seek(0, soFromBeginning); FJPEG.Assign(PictureToCopy.Picture.Graphic); FJPEG.SaveToStream(FMemoryStream); FMemoryStream.Seek(0, soFromBeginning); {Save the frame size at the begining of the stream} MyBuffer^ := Char(FMemoryStream.Size shr 24); Inc(Result); Inc(MyBuffer); MyBuffer^ := Char(FMemoryStream.Size shr 16); Inc(Result); Inc(MyBuffer); MyBuffer^ := Char(FMemoryStream.Size shr 8); Inc(Result); Inc(MyBuffer); MyBuffer^ := Char(FMemoryStream.Size and 255); Inc(Result); Inc(MyBuffer); {Copy frame content} for i := 0 to FMemoryStream.Size - 1 do begin FMemoryStream.Read(CurrentImageByte, 1); MyBuffer^ := Char(CurrentImageByte); Inc(Result); Inc(MyBuffer); end;//for i end; finally FJPEG.Free; FMemoryStream.Free; end; end; {Copy picture (Jpeg) from the buffer and return number of copied bytes} function CopyPictureFromStream(PictureToPaste: TImage; MyBuffer: PAnsiChar): Integer; var PictureSize: Integer; FJPEG: TJPEGImage; FMemoryStream: TMemoryStream; begin Result := 0; {Frame size} PictureSize := Byte(MyBuffer^) shl 24; Inc(Result); Inc(MyBuffer); PictureSize := PictureSize + Byte(MyBuffer^) shl 16; Inc(Result); Inc(MyBuffer); PictureSize := PictureSize + Byte(MyBuffer^) shl 8; Inc(Result); Inc(MyBuffer); PictureSize := PictureSize + Byte(MyBuffer^); Inc(Result); Inc(MyBuffer); Inc(Result, PictureSize); {Get the frame from the buffer} FJPEG := TJPEGImage.Create; FMemoryStream := TMemoryStream.Create; try {Copy buffer to stream} FMemoryStream.Seek(0, soFromBeginning); FMemoryStream.WriteBuffer(MyBuffer^, PictureSize); {Copy stream content to jpeg image} FMemoryStream.Seek(0, soFromBeginning); FJPEG.LoadFromStream(FMemoryStream); if Assigned(PictureToPaste) then {Assign jpeg image content to TImage object} PictureToPaste.Picture.Assign(FJPEG); finally FJPEG.Free; FMemoryStream.Free end; end; xpmenu3.0,fastreport2.50,ehlib3.0三个控件那里有的下啊? 请问在win98下如何模拟ctrl+alt+del按键,打开结束程序对话框? VCL控件的创建问题 像做个可以在互联网上传递数据的数据库程序,希望大家给点意见!来都有分! 请教一个小问题,急 线程里边可以用ADO类操作数据库吗? 有关数据库安装程序的制作 stringgrid,边框大小,有分 请问在delphi下怎么调用dos下面的程序后台运行? delphi高手你们,帮帮菜鸟吧?? 数据导出到Execel中,总是第一列为空不知道为何? 如何用IHTML接口取得鼠标在webbrowser上移动时的坐标
function CopyPictureToStream(PictureToCopy: TImage;
MyBuffer: PAnsiChar): Integer;
var
FJPEG: TJPEGImage;
FMemoryStream: TMemoryStream;
CurrentImageByte: Byte;
i: Integer;
begin
Result := 0;
{Get current frame from TImage}
FJPEG := TJPEGImage.Create;
FMemoryStream := TMemoryStream.Create;
try
if Assigned(PictureToCopy) then begin
FMemoryStream.Seek(0, soFromBeginning);
FJPEG.Assign(PictureToCopy.Picture.Graphic);
FJPEG.SaveToStream(FMemoryStream);
FMemoryStream.Seek(0, soFromBeginning);
{Save the frame size at the begining of the stream}
MyBuffer^ := Char(FMemoryStream.Size shr 24);
Inc(Result);
Inc(MyBuffer);
MyBuffer^ := Char(FMemoryStream.Size shr 16);
Inc(Result);
Inc(MyBuffer);
MyBuffer^ := Char(FMemoryStream.Size shr 8);
Inc(Result);
Inc(MyBuffer);
MyBuffer^ := Char(FMemoryStream.Size and 255);
Inc(Result);
Inc(MyBuffer);
{Copy frame content}
for i := 0 to FMemoryStream.Size - 1 do begin
FMemoryStream.Read(CurrentImageByte, 1);
MyBuffer^ := Char(CurrentImageByte);
Inc(Result);
Inc(MyBuffer);
end;//for i
end;
finally
FJPEG.Free;
FMemoryStream.Free;
end;
end;
{Copy picture (Jpeg) from the buffer and return number of copied bytes}
function CopyPictureFromStream(PictureToPaste: TImage;
MyBuffer: PAnsiChar): Integer;
var
PictureSize: Integer;
FJPEG: TJPEGImage;
FMemoryStream: TMemoryStream;
begin
Result := 0;
{Frame size}
PictureSize := Byte(MyBuffer^) shl 24;
Inc(Result);
Inc(MyBuffer);
PictureSize := PictureSize + Byte(MyBuffer^) shl 16;
Inc(Result);
Inc(MyBuffer);
PictureSize := PictureSize + Byte(MyBuffer^) shl 8;
Inc(Result);
Inc(MyBuffer);
PictureSize := PictureSize + Byte(MyBuffer^);
Inc(Result);
Inc(MyBuffer);
Inc(Result, PictureSize);
{Get the frame from the buffer}
FJPEG := TJPEGImage.Create;
FMemoryStream := TMemoryStream.Create;
try
{Copy buffer to stream}
FMemoryStream.Seek(0, soFromBeginning);
FMemoryStream.WriteBuffer(MyBuffer^, PictureSize);
{Copy stream content to jpeg image}
FMemoryStream.Seek(0, soFromBeginning);
FJPEG.LoadFromStream(FMemoryStream);
if Assigned(PictureToPaste) then
{Assign jpeg image content to TImage object}
PictureToPaste.Picture.Assign(FJPEG);
finally
FJPEG.Free;
FMemoryStream.Free
end;
end;