例如圖片1,加圖片2(掩碼圖片),如何得到圖片3的效果?圖片3就只是顯示中間,周圍都是透明或半透明的,這樣就可以得到一個邊緣光滑的圖片效果。
請求各大神能賜教,最好能有代碼,謝謝!


uj5u.com熱心網友回復:
忘記了說,我使用的是delphi7,拜謝各位大神了
uj5u.com熱心網友回復:
函式BitBlt,兩次,第一次繪制正確圖片用srcCopy引數,第二次繪制掩碼圖片,用srcand與一下uj5u.com熱心網友回復:
bitblt(image3.Picture.Bitmap.Canvas.Handle, 0, 0, 23, 22, image1.Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);bitblt(image3.Picture.Bitmap.Canvas.Handle, 0, 0, 23, 22, image2.Picture.Bitmap.Canvas.Handle, 0, 0, SRCAND);
image3.Refresh;
請問是不是這樣?但沒有效果啊。
用bitblt已經反反復復各種方式都試過,都沒有預期的效果。
這個掩碼圖,應該是圖1根據圖2的顏色,圖2是黑色時,圖1對應的像素就透明,灰色時,就半透明,根據灰度值決定透明程度吧?
uj5u.com熱心網友回復:
多謝指教,但我試過很多次,都不行啊,不知有沒其它方法?uj5u.com熱心網友回復:
http://hi.baidu.com/aclshysmtfbdefd/item/3b68780175fd5beb3599029buj5u.com熱心網友回復:
用 GDI+, 先畫 背景 ,再畫 位圖。var
I, Count: Integer;
Clsid: TClsid;
Image: TGpImage;
bkImage: TGpImage;
Attr: TGpImageAttributes;
bmp: TGpBitmap;
tmp: TGpBitmap;
tg, bg: TGpGraphics;
GUID: TGUID;
begin
// 打開影像檔案
Image := TGpImage.Create('e:\01.png');
BkImage := TGpImage.Create('e:\bk.png');
tmp := TGpBitmap.Create(Image.Width, Image.Height, pf32bppARGB);
tg := TGpGraphics.Create(tmp);
bmp := TGpBitmap.Create(Image.Width, Image.Height, pf32bppARGB);
bg := TGpGraphics.Create(bmp);
Attr := TGpImageAttributes.Create;
try
// 設定透明色范圍
Attr.SetColorKey($FFffffff, $FFffffff);
Image.GetFrameDimensionsList(@GUID, 1);
// 獲取影像禎數
Count := Image.GetFrameCount(GUID);
GetEncoderClsid('image/png', Clsid);
for I := 0 to Count - 1 do
begin
// 選擇激活禎
Image.SelectActiveFrame(GUID, I);
// 畫當前禎到臨時圖
tg.DrawImage(Image, 0, 0, Image.Width, Image.Height);
// 合成圖初始化為透明色
bg.Clear(0);
// 畫背景圖,如不需要背景圖,可將下面注釋掉
bg.DrawImage(BkImage, 0, 0, bmp.Width, bmp.Height);
// 畫臨時圖
bg.DrawImage(tmp, GpRect(0, 0, bmp.Width, bmp.Height),
0, 0, tmp.Width, tmp.Height, utPixel, Attr);
// 保存
bmp.Save('e:\01-' + IntToStr(I) + '.png', Clsid);
end;
finally
Attr.Free;
bg.Free;
bmp.Free;
tg.Free;
tmp.Free;
BkImage.Free;
Image.Free;
end;
uj5u.com熱心網友回復:
2次 非與或 NotXORuj5u.com熱心網友回復:
非異或
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/104487.html
上一篇:04.卷積神經網路 W2.深度卷積網路:實體探究(作業:Keras教程+ResNets殘差網路)
下一篇:傳輸的時候字串丟失
