加载一张图片后转换成^Byte类型的值,如何操作?

解决方案 »

  1.   

    我这样操作,但好象不对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时报错了,我不知道是不是我这里保存的有问题
      

  2.   

    这个太简单了,声明一个内存流或文件流对象,再调用jpg对象的savetostream就可以了
      

  3.   

    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;
      

  4.   


    PData1 : PByte
    指针需要分配空间的
      

  5.   

    _Jpeg.LoadFromFile(OD.FileName);
          _Jpeg.SaveToStream(MS);
    为什么会出现MS=0 ,二进制流没有存进去的现象?