就是在原图上在加一张小图,半透明

解决方案 »

  1.   

    http://web.tiscali.it/delphipage/的 TWaterTransform
    http://web.tiscali.it/delphipage/imagingdemo.zip
      

  2.   

    就是半透明吗?那好办把要与小图重合的部分先COPYRECT()出来,用这个图于小图做一次ALPHA混合。得到的透明图再贴回去就是了。现给你找的
     crossbow(【带三尺剑立不世之功】) ( ) 信誉:93  2004-4-14 7:54:14  得分:50 
     
     
      
    我写的,你试试。Alpha是透明度,其它参数应该都看得懂吧?我就不多废话了。:)procedure BlendBmp(BkGround, FrGround: TBitmap; Left, Top, Alpha,
      TransR, TransG, TransB: Integer);
    var
      X, Y: Integer;
      PB, PF: PbyteArray;
      R1, R2, G1, G2, B1, B2: Integer;
    begin
      BkGround.PixelFormat := pf24bit;
      FrGround.PixelFormat := pf24bit;
      for Y := Top to BkGround.Height - 1 do
      begin
        if Y - Top > FrGround.Height - 1 then
          Break;
        PB := BkGround.ScanLine[Y];
        PF := FrGround.ScanLine[Y - Top];
        for X := Left to BkGround.Width - 1 do
        begin
          if X - Left > FrGround.Width - 1 then
            Continue;
          B1 := PB[X * 3];
          G1 := PB[X * 3 + 1];
          R1 := PB[X * 3 + 2];
          B2 := PF[(X - left) * 3];
          G2 := PF[(X - left) * 3 + 1];
          R2 := PF[(X - left) * 3 + 2];
          if (B2 = TransB) and (G2 = TransG) and (R2 = TransR) then
            Continue;
          PB[X * 3] := (B2 * Alpha + B1 * (255 - Alpha)) div 255;
          PB[X * 3 + 1] := (G2 * Alpha + G1 * (255 - Alpha)) div 255;
          PB[X * 3 + 2] := (R2 * Alpha + R1 * (255 - Alpha)) div 255;
        end;
      end;
    end;
      
     
      

  3.   

    aiirii(ari-爱的眼睛)你说的哪个控件要付钱的
      

  4.   

    你想要那個libray 就要錢, 如果只是用, 不修改的, 就不用