Adding support to add alpha over images (to show them as disabled)

This will be used in deck import card preview.

Signed-off-by: leriomaggio <valeriomaggio@gmail.com>
This commit is contained in:
leriomaggio
2021-09-12 10:29:54 +01:00
parent 5400546399
commit c0059c351f

View File

@@ -18,10 +18,7 @@
package forge.toolbox.imaging; package forge.toolbox.imaging;
import java.awt.Dimension; import java.awt.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter; import java.awt.event.ComponentAdapter;
@@ -63,6 +60,7 @@ public class FImagePanel extends JPanel {
private double imageScale = 1; private double imageScale = 1;
private int degreesOfRotation = 0; private int degreesOfRotation = 0;
private float alpha = 0f;
// Ensures that when resizing only {@code doPerformancePaint} is used. // Ensures that when resizing only {@code doPerformancePaint} is used.
private boolean isResizing = false; private boolean isResizing = false;
@@ -213,6 +211,8 @@ public class FImagePanel extends JPanel {
BufferedImage resampledImage = getResampledImage(); BufferedImage resampledImage = getResampledImage();
if (resampledImage != null) { if (resampledImage != null) {
Graphics2D g2d = (Graphics2D)g; Graphics2D g2d = (Graphics2D)g;
if (alpha > 0)
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
g2d.drawImage(resampledImage, getAffineTransform(resampledImage, false), null); g2d.drawImage(resampledImage, getAffineTransform(resampledImage, false), null);
} }
} }
@@ -252,6 +252,8 @@ public class FImagePanel extends JPanel {
private void doPerformancePaint(Graphics g) { private void doPerformancePaint(Graphics g) {
Graphics2D g2d = (Graphics2D)g; Graphics2D g2d = (Graphics2D)g;
setRenderingHints(g2d); setRenderingHints(g2d);
if (alpha > 0)
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
g2d.drawImage(sourceImage, getAffineTransform(sourceImage, true), null); g2d.drawImage(sourceImage, getAffineTransform(sourceImage, true), null);
} }
@@ -342,4 +344,8 @@ public class FImagePanel extends JPanel {
} }
} }
public void setAlpha(float alphaValue){
this.alpha = alphaValue;
}
} }