Note that there are some explanatory texts on larger screens.

plurals
  1. PODrawing Transparent Images In Java Graphics2D
    primarykey
    data
    text
    <p>I want to draw a PARTIALLY transparent image on top of another (Making shadows over things). I am currently using java's Graphics2D class to render, I've been told to set the composite to AlphaComposite, but that only sets it completely transparent.</p> <p>Can I do this with my current setup? What do I have to do to fix this?</p> <p>This is the code I was told that would make it partially transparent:</p> <pre><code> AlphaComposite ac = java.awt.AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.5F); g.setComposite(ac); </code></pre> <p>(I am using png images by the way)</p> <p>Heres your sscce (these are all in different classes but i put them together for simplicity) (I use an image called "Test" in the local folder "Images", you can use whatever for this as long as it is a png Image named the same</p> <pre><code>import java.awt.AlphaComposite; import java.awt.Color; import java.awt.DisplayMode; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Window; import javax.swing.ImageIcon; import com.blazingkin.atrox.ScreenManager; public class AtroxAdventrum{ public static void main(String[] args) { new AtroxAdventrum().run(); } private static DisplayMode modes[] = { //new DisplayMode(1080,720,32,0), //new DisplayMode(1080,720,24,0), //new DisplayMode(1080,720,16,0), //new DisplayMode(1440,900,32,0), //new DisplayMode(1440,900,24,0), //new DisplayMode(1440,900,16,0), }; private boolean running = true; public ScreenManager s; public void stop(){ running = false; } public void run(){ try{ init(); gameLoop(); }finally{ s.restoreScreen(); } } public void init(){ s = new ScreenManager(); DisplayMode dm = s.findFirstCompatibleMode(modes); s.setFullScreen(dm); Window w = s.getFullScreenWindow(); w.setFont(new Font("Arial", Font.PLAIN, 20)); w.setBackground(Color.black); w.setForeground(Color.white); } public void gameLoop(){ long startTime = System.currentTimeMillis(); long cumTime = startTime; while (running) { long timePassed = System.currentTimeMillis() - cumTime; cumTime += timePassed; if (limitfps){ try{ Thread.sleep(15); }catch(Exception e){} } update(timePassed); Graphics2D g = s.getGraphics(); draw(g); g.dispose(); s.update(); } } public void update(long timePassed){ } public boolean limitfps = false; public void draw(Graphics2D g){ g.clearRect(0, 0, s.getWidth(), s.getHeight()); AlphaComposite ac = java.awt.AlphaComposite.getInstance(AlphaComposite.CLEAR,0.5F); g.setComposite(ac); g.drawImage(new ImageIcon("Images/Test.png").getImage(), 30, 30, 30, 30, null); } } </code></pre> <p>If you run this you will have to alt + tab out and end the process (as it doesnt have anything in this portion of code to do such)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload