Итак, я делаю приложение stopmotion - живой канал с моей веб-камеры находится внутри JPanel (с setOpaque (false)), который находится внутри верхнего (10-го) уровня в JLayeredPane - и в основном, когда я делаю снимок, я хочу добавить его в один из нижних слоев, чтобы на экране отображалась трассировка предыдущих изображений. Вот как я пытаюсь это сделать сейчас:Добавить прозрачное изображение в JLayeredPane
EDIT: это мой новый код, основанный на ответе ниже - это теперь ничего не делает, а не просто добавляет непрозрачное изображение, как раньше - если я добавлю это к JPanel, хотя и добавьте JPanel в JLayeredPane, то все, что я получаю серый
BufferedImage img2 = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img2.createGraphics();
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, .5f));
g.drawImage(img2, 0, 0, null);
g.dispose();
ImageIcon imgIcon = new ImageIcon(new ImageIcon(img2).getImage().getScaledInstance(img2.getWidth(), img2.getHeight(), Image.SCALE_SMOOTH));
JLabel showPic = new JLabel(imgIcon);
showPic.setSize(layers.getSize());
showPic.setBounds(layers.getX() + 18, layers.getY(), img2.getWidth(), img2.getHeight());
layers.add(showPic, new Integer(1)); //layers is my JLayeredPane
layers.repaint();
layers.revalidate();
IMG это картина, которую я только что захватил с веб-камеры, и я пытаюсь сделать его полупрозрачным , затем добавьте его в JLabel. Как я могу сделать эту работу? Или есть лучший способ сделать это?
Got это - только теперь, когда я добавляю его, ничего не отображается - если я не добавить его в JPanel, в случае чего (после того, как я panel.setBackground (новый цвет (0,0,0, 50)) на экране появляется только серый цвет. Невозможно ли в JLayeredPane сделать прозрачный слой более прозрачным и увидеть слой под ним? – dgamz
теперь я замечаю: вам нужно иметь еще один изображение, которое вы не можете нарисовать пустым изображением (img2) для себя - каково изображение с веб-камеры? – gpasch
Изображение с веб-камеры называется img - хотя я не пытаюсь изменить это, поскольку я его где-то храню еще нетронутым - я бы хотел сделать копию img, а затем сделать эту копию полуторной nsparent – dgamz