图片如何合并?(急)

解决方案 »

  1.   

    使用gdi+ 新建一张图片然后把两张图片画到新的里面,网上有gdi+开发包
      

  2.   

    记得有个drawimage函数,参数是源图片,原图片区域,目标图片区域
      

  3.   

    简单写了一下,你看看,原理就是这样的
    var
      g:TGPGraphics;
      img:TGPImage;
      bitmap:TBitmap;
    begin
      img:= TGPImage.Create('D:\120808091111289.jpg');
      bitmap:= TBitmap.Create;
      bitmap.width:=100;
      bitmap.Height:=100;  g:= TGPGraphics.Create(bitmap.Canvas.Handle);
      g.DrawImage(img,10,10,10,10);
      bitmap.SaveToFile('d:\123.bmp');
      bitmap.Free;
      img.Free;
      g.Free;end;
      

  4.   

    阿发伯发的这个不知道行不行,里面有几个pas你加到你的项目里然后再引用就可以了,如果他这个不好使留下email我发给你一个
    http://download.csdn.net/source/297704
      

  5.   

    请把问题说清楚,是拼合,还是叠加,如果是拼合,是横向还是纵向?如果是叠加,Alpha多大?
      

  6.   

    图片合并与拆分我以前都是使用opencv来做的,大批量处理的时候gdi+的速度慢些
      

  7.   

    是合并,如并列合并
    hongqi162 不行啊
    email: [email protected]
      

  8.   

    var
      g:TGPGraphics;
      img,img2:TGPImage;
      bitmap:TBitmap;
      destRect:TGPRect;
    begin
      //--创建目标图片大小为300*600
      bitmap:= TBitmap.Create;
      bitmap.width:=600;
      bitmap.Height:=300;
      //--加载源图片1
      img:= TGPImage.Create('D:\120808091111289.jpg');
      //--加载源图片2
      img2:= TGPImage.Create('D:\120808091111289.jpg');
      //--建立TGpGraphics
      g:= TGPGraphics.Create(bitmap.Canvas.Handle);
      //--设置源图片1需要拷贝的区域及在目标图片中显示的位置
      destRect.X:=0;
      destRect.Y:=0;
      destRect.Height:=300;
      destRect.Width:=300;
      g.DrawImage(img,destRect,0,300,300,300,UnitPixel);
      //--设置源图片2需要拷贝的区域及在目标图片中显示的位置
      destRect.X:=300;
      destRect.Y:=0;
      destRect.Height:=300;
      destRect.Width:=300;
      g.DrawImage(img2,destRect,300,0,300,300,UnitPixel);
      //--保存图片
      bitmap.SaveToFile('d:\123.bmp');
      bitmap.Free;
      img.Free;
      img2.Free;
      g.Free;
    end;
      

  9.   

    hongqi162 用bitmap图片变成很大了,
    就是我001.jpg 002.jpg大小才700多K,生成跟001.jpg一样大后,图片变成了10几M