想显示一幅16M的JPG图像,不知各位有什么高招没有?
本人想过对图像进行分幅,动态的进行拼接,似乎delphi中没有这样的组件,能调这样大的图。试过用CopyRect和直接读象素,但太慢!
急!!

解决方案 »

  1.   

    知道CopyRect,不知道其它的办法,UP一下!
      

  2.   

    var
      R: TRect;
      Src, Dst: TBitmap;
    begin
      R := Rect(20, 20, 100, 100); // R可以设为所需的值
      Src := TBitmap.Create;
      Dst := TBitmap.Create;
      Src.LoadFromFile(SrcFile);   // SrcFile是源文件名
      Dst.Assign(Src);
      with Dst do
      begin
        Width := R.Right - R.Left;
        Height := R.Bottom - R.Top;
        Canvas.CopyRect(Canvas.ClipRect, Src.Canvas, R);
      end;
      Dst.SaveToFile(DstFile);   // DstFile是目标文件名
      Dst.Free;
      Src.Free;
    end;
      

  3.   

    这样不行吧,直接把源文件Load进内存?
    会不会很慢啊?
    Dst.Assign(Src)这句好像没什么用吧?