2013-11-25 3 views
0

Я знаю, что я не первый человек, задающий этот вопрос, но я думаю, что мины немного разные.transparent .png background

У меня есть изображение png Я нарисовал маску MS, которая является игроком, и я хочу, чтобы фон изображения был прозрачным, когда я использую графические объекты для рисования изображения. Я пробовал некоторые вещи с волшебным розовым, но, похоже, он не работает в Java. Я не новичок в java, но Im неопытен, поэтому вы могли бы объяснить любые пакеты или методы, которые вы используете спасибо!

+0

ли фоновое изображение и игрок изображения два разных изображения? – Sage

+0

да, у меня есть напольная плитка, а затем я рисую изображение игрока над ним, поэтому увидим пол вокруг него. – Acor74u

+0

даны ответы ниже. check – Sage

ответ

0

С Java6, PNG картинка должна быть использована для TrayIcon, но, как упоминалось в этом так вопрос, проверьте:

the background color chosen to represent the transparent pixels 
the transparency options 
the resolution of the icon 
alternate format like SVG (provided you are using external library like Batik, and  
conversion mechnism to java.awt.Image) 
1
  1. Вам нужно будет использовать AlphaComposite иметь эффект прозрачности:
  2. Предполагая, что вы уже знаете Graphics2D и Graphics использует BufferedImage
  3. Создание временного графического объекта g.create(), а затем расположить объект для безопасного восстановления состояния O f изменился после создания объекта.

    protected void paintComponent(Graphics g) { 
        super.paintComponent(g); 
    
        Graphics2D g2d = (Graphics2D) g.create(); 
        g2d.setComposite(AlphaComposite.SrcOver.derive(0.5f)); 
        g2d.drawImage(tileImage, 0, 0, getWidth(), getHeight()); 
        g2d.dispose(); 
    
        // draw player image 
    
    } 
    
+0

Что делают методы complexcomposite() и output()? – Acor74u

+0

'Graphics2D.setComposite' устанавливает состав, который мы передаем, и' AlphaComposite.SrcOver.derive (alpha) 'Возвращает аналогичный объект AlphaComposite, который использует указанное значение альфа. Я добавил ссылку документации класса. Пожалуйста, проверьте их для получения более подробной информации. – Sage

+0

Хорошо спасибо! Извините, я не могу поддержать ваш ответ – Acor74u