Рисование полупрозрачного .png в AWT - PullRequest
2 голосов
/ 17 февраля 2009

Я пытаюсь нарисовать прозрачное изображение.png поверх телевизионного сигнала (так что смешивание перед рендерингом уже не так).

Когда я рисовал прозрачный прямоугольник, я мог просто установить SrcOver и указать альфа для моего фона, и он работал бы:

((DVBGraphics) g).setDVBComposite(DVBAlphaComposite.SrcOver);

Но сейчас я на самом деле пытаюсь использовать png с установленной прозрачностью, и это не работает (это просто твердо).

Если я установлю режим XOR:

g.setXORMode(Color.white);

после установки SrcOver все изображение становится полупрозрачным, а не только указанные точки. Также детали, установленные на «Прозрачный», все еще видны.

Может кто-нибудь указать мне на магический набор звонков, который делает эту работу?

(Кроме того, свинг недоступен - только большая часть java 1.4).

1 Ответ

0 голосов
/ 17 февраля 2009

Я могу только предложить вам перепроверить все; Я рисовал PNG-изображения с помощью AWT раньше, и он работал нормально, просто делая очевидное:

private final Image                     image;                                  //

protected void paintForeground(Graphics2D gc, int wid, int hgt) {
    ...
    gc.drawImage(image,dx,dy,(dx+width),(dy+height),0,0,width,height,null);
    ...
    }

Это краски с учетом прозрачности изображения, за исключением платформ J2ME 1.1.

Режим рисования - это обычная краска, а не XOR.

...