我有一個帶有透明背景的PNG圖像,將被添加到另一個圖像。具有透明背景的javacv圖像
我的問題是,當我加載了IplImage
背景是不是透明的了 - 會變成白色。
如何在javacv中使用具有透明背景的圖像?
IplImage src = cvLoadImage("2.png");
IplImage tmp = cvLoadImage("1.png");
cvSetImageROI(src, cvRect(41,28,tmp.width(),tmp.height())); // not the same size
cvShowImage("1", src); //before
cvCopy(src, tmp);
cvShowImage("2", src); //after
cvWaitKey(0);
cvResetImageROI(src);
tryed添加阿爾法CHANNL但沒有工作:
Graphics g=src.getBufferedImage().getGraphics();
Graphics2D g2d = (Graphics2D)g;
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
10 * 0.1f));
BufferedImage a = new BufferedImage(tmp.width(), tmp.height(), BufferedImage.TYPE_INT_ARGB);
src = IplImage.createFrom(a);
如果BG圖像沒有alpha通道,則Graphics對象將不支持繪製其他圖像的透明度。嘗試先將BG圖像寫入相同大小但帶有alpha的圖像,然後將FG圖像寫入該圖像。 –
我該怎麼做:)首先將BG圖像寫入相同大小但帶有alpha的圖像? – user1246950
我嘗試了java2d(從未使用它,因此不是100%確定我做的是正確的事情)添加代碼發佈我嘗試過但它沒有工作,當我只做到一個它給了我excption敏感他們沒有相同的數字的信道所以我做了另一個,但我只是得到了2個黑色圖像;/ – user1246950