我是个新手,想问下,怎么在图片上编辑文字,然后把图片和文字在合成为一个新的图片文件,用DELPHI编,有高手知道吗

解决方案 »

  1.   

    我这里有一个小测试,是在图片上画一个黑色的框,因为要屏蔽一些区域。你改改就行了procedure TAMSSocket.DrawRect(PicFile : String);
    //传进去的是一张图片的路径,包含文件名
    var
      FBMP:TBitmap;
      jpeg: TJpegImage;
      TempMs: TmemoryStream;
      I : Integer;
    begin
      TempMs := nil;
      FBMP := nil;
      jpeg := nil;
      try
          FBMP := TBitmap.Create;
          jpeg := TJpegImage.Create;
          TempMs := TmemoryStream.Create;
          jpeg.LoadFromFile(PicFile);
          fbmp.Assign(jpeg);
          fbmp.Canvas.Brush.Style := bsSolid;
          fbmp.Canvas.Brush.Color := clBlack;
          for I := 0 to 7 do//因为最多可以画八个黑色的区域
              if (Points[I,0].X <> 0) and (Points[I,0].Y <> 0) and (Points[I,1].X <> 0) and (Points[I,1].Y <> 0) then
                  FBMP.Canvas.FillRect(Rect(Points[I,0].X,Points[I,0].Y,Points[I,1].X,Points[I,1].Y));
          with jpeg do
          begin
              Assign(fbmp);
              CompressionQuality := 80; //压缩比例
              Compress;
              SaveToFile(PicFile);//保存路径……
          end;
      finally
          TempMs.Free;
          FBMP.Free;
          jpeg.Free;
      end;
    end;
      

  2.   

    TBitamp 有Canvas, 可以在上面写字的
      

  3.   

    我试了,在Timage里放了张图片,但提示“can only modify an image if it contains a bitmap”,这是为什么?