mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
feat: make icons scale using SCALE_SMOOTH
This commit is contained in:
committed by
Michael Kamensky
parent
6f15f7c618
commit
6b24d956f6
@@ -463,7 +463,7 @@ public class FSkin {
|
||||
}
|
||||
|
||||
private void updateColor() {
|
||||
tempCoords = skinProp.getCoords();
|
||||
int[] tempCoords = skinProp.getCoords();
|
||||
x0 = tempCoords[0];
|
||||
y0 = tempCoords[1];
|
||||
|
||||
@@ -549,7 +549,7 @@ public class FSkin {
|
||||
* @param s0   An address in the hashmap, derived from FSkinProp enum
|
||||
*/
|
||||
private static void setImage(final FSkinProp s0, final boolean scale) {
|
||||
tempCoords = s0.getCoords();
|
||||
int[] tempCoords = s0.getCoords();
|
||||
x0 = tempCoords[0];
|
||||
y0 = tempCoords[1];
|
||||
w0 = tempCoords[2];
|
||||
@@ -560,7 +560,7 @@ public class FSkin {
|
||||
final BufferedImage bi0 = img.getSubimage(x0, y0, w0, h0);
|
||||
|
||||
if (scale && newW != 0) {
|
||||
setImage(s0, bi0.getScaledInstance(newW, newH, Image.SCALE_AREA_AVERAGING));
|
||||
setImage(s0, bi0.getScaledInstance(newW, newH, Image.SCALE_SMOOTH));
|
||||
}
|
||||
else {
|
||||
setImage(s0, bi0);
|
||||
@@ -569,8 +569,8 @@ public class FSkin {
|
||||
|
||||
protected Image image;
|
||||
protected ImageIcon imageIcon;
|
||||
protected HashMap<String, SkinImage> scaledImages;
|
||||
private HashMap<String, SkinCursor> cursors;
|
||||
protected HashMap<String, SkinImage> scaledImages = new HashMap<>();
|
||||
private HashMap<String, SkinCursor> cursors = new HashMap<>();
|
||||
|
||||
private SkinImage(final Image image0) {
|
||||
this.image = image0;
|
||||
@@ -589,9 +589,6 @@ public class FSkin {
|
||||
}
|
||||
|
||||
public SkinImage resize(final int w, final int h) {
|
||||
if (this.scaledImages == null) {
|
||||
this.scaledImages = new HashMap<>();
|
||||
}
|
||||
final String key = w + "x" + h;
|
||||
SkinImage scaledImage = this.scaledImages.get(key);
|
||||
if (scaledImage == null) {
|
||||
@@ -603,11 +600,13 @@ public class FSkin {
|
||||
}
|
||||
|
||||
public boolean save(final String path, final int w, final int h) {
|
||||
final Image scaledImage = this.image.getScaledInstance(w, h, Image.SCALE_SMOOTH);
|
||||
|
||||
final BufferedImage resizedImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
|
||||
|
||||
final Graphics2D g2d = resizedImage.createGraphics();
|
||||
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
|
||||
g2d.drawImage(this.image, 0, 0, w, h, 0, 0, this.getWidth(), this.getHeight(), null);
|
||||
g2d.drawImage(scaledImage, 0, 0, null);
|
||||
g2d.dispose();
|
||||
|
||||
final File outputfile = new File(path);
|
||||
@@ -624,9 +623,6 @@ public class FSkin {
|
||||
return scale(scale, scale);
|
||||
}
|
||||
public SkinImage scale(final double scaleX, final double scaleY) {
|
||||
if (this.scaledImages == null) {
|
||||
this.scaledImages = new HashMap<>();
|
||||
}
|
||||
final String key = scaleX + "|" + scaleY;
|
||||
SkinImage scaledImage = this.scaledImages.get(key);
|
||||
if (scaledImage == null) {
|
||||
@@ -638,8 +634,6 @@ public class FSkin {
|
||||
}
|
||||
|
||||
protected void updateScaledImages() {
|
||||
if (this.scaledImages == null) { return; }
|
||||
|
||||
for (final Entry<String, SkinImage> i : this.scaledImages.entrySet()) {
|
||||
String[] dims = i.getKey().split("x");
|
||||
if (dims.length == 2) { //static scale
|
||||
@@ -653,14 +647,7 @@ public class FSkin {
|
||||
}
|
||||
|
||||
protected void createResizedImage(final SkinImage baseImage, final int w, final int h) {
|
||||
final BufferedImage resizedImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
|
||||
|
||||
final Graphics2D g2d = resizedImage.createGraphics();
|
||||
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
|
||||
g2d.drawImage(baseImage.image, 0, 0, w, h, 0, 0, baseImage.getWidth(), baseImage.getHeight(), null);
|
||||
g2d.dispose();
|
||||
|
||||
this.changeImage(resizedImage, null);
|
||||
this.changeImage(baseImage.image.getScaledInstance(w, h, Image.SCALE_SMOOTH), null);
|
||||
}
|
||||
|
||||
private void createScaledImage(final SkinImage baseImage, final double scaleX, final double scaleY) {
|
||||
@@ -668,9 +655,6 @@ public class FSkin {
|
||||
}
|
||||
|
||||
private SkinCursor toCursor(final int hotSpotX, final int hotSpotY, final String name) {
|
||||
if (this.cursors == null) {
|
||||
this.cursors = new HashMap<>();
|
||||
}
|
||||
final String key = hotSpotX + "|" + hotSpotY + "|" + name;
|
||||
SkinCursor cursor = this.cursors.get(key);
|
||||
if (cursor == null) {
|
||||
@@ -682,8 +666,6 @@ public class FSkin {
|
||||
}
|
||||
|
||||
private void updateCursors() {
|
||||
if (this.cursors == null) { return; }
|
||||
|
||||
for (final SkinCursor cursor : this.cursors.values()) {
|
||||
cursor.updateCursor(this.image);
|
||||
}
|
||||
@@ -778,7 +760,7 @@ public class FSkin {
|
||||
}
|
||||
|
||||
private static void setIcon(final FSkinProp s0) {
|
||||
tempCoords = s0.getCoords();
|
||||
int[] tempCoords = s0.getCoords();
|
||||
x0 = tempCoords[0];
|
||||
y0 = tempCoords[1];
|
||||
w0 = tempCoords[2];
|
||||
@@ -1111,7 +1093,6 @@ public class FSkin {
|
||||
bimDefaultAvatars, bimPreferredAvatars, bimTrophies, bimAbilities, bimManaIcons, bimPhyrexian, bimDefaultSleeve,
|
||||
bimDefaultSleeve2, bimDefaultDeckbox, bimPrefferedSetLogo, bimDefaultWatermark, bimDefaultDraftRank;
|
||||
private static int x0, y0, w0, h0, newW, newH, preferredW, preferredH;
|
||||
private static int[] tempCoords;
|
||||
private static int defaultFontSize = 12;
|
||||
private static boolean loaded = false;
|
||||
|
||||
@@ -1288,7 +1269,7 @@ public class FSkin {
|
||||
bimQuestDraftDeck = ImageIO.read(f8);
|
||||
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
|
||||
bimFavIcon = ImageIO.read(f9);
|
||||
|
||||
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
|
||||
if (f5.exists()) { bimPreferredAvatars = ImageIO.read(f5); }
|
||||
|
||||
FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p);
|
||||
@@ -1538,7 +1519,7 @@ public class FSkin {
|
||||
}
|
||||
|
||||
private static BufferedImage testPreferredSprite(final FSkinProp s0) {
|
||||
tempCoords = s0.getCoords();
|
||||
int[] tempCoords = s0.getCoords();
|
||||
x0 = tempCoords[0];
|
||||
y0 = tempCoords[1];
|
||||
w0 = tempCoords[2];
|
||||
@@ -1653,7 +1634,7 @@ public class FSkin {
|
||||
}
|
||||
|
||||
private static void setImage(final FSkinProp s0, final BufferedImage bim) {
|
||||
tempCoords = s0.getCoords();
|
||||
int[] tempCoords = s0.getCoords();
|
||||
x0 = tempCoords[0];
|
||||
y0 = tempCoords[1];
|
||||
w0 = tempCoords[2];
|
||||
|
||||
@@ -445,7 +445,7 @@ public class FNavigationBar extends FTitleBarBase {
|
||||
public void setIcon(final Icon icon) {
|
||||
final ImageIcon imageIcon = ReflectionUtil.safeCast(icon, ImageIcon.class);
|
||||
if (imageIcon != null) {
|
||||
super.setIcon(new ImageIcon(imageIcon.getImage().getScaledInstance(20, 20, Image.SCALE_AREA_AVERAGING)));
|
||||
super.setIcon(new ImageIcon(imageIcon.getImage().getScaledInstance(20, 20, Image.SCALE_SMOOTH)));
|
||||
}
|
||||
else {
|
||||
super.setIcon((Icon)null);
|
||||
|
||||
@@ -44,7 +44,7 @@ public class FTitleBar extends FTitleBarBase {
|
||||
@Override
|
||||
public void setIconImage(Image image) {
|
||||
if (image != null) {
|
||||
this.lblTitle.setIcon(new ImageIcon(image.getScaledInstance(16, 16, Image.SCALE_AREA_AVERAGING)));
|
||||
this.lblTitle.setIcon(new ImageIcon(image.getScaledInstance(16, 16, Image.SCALE_SMOOTH)));
|
||||
}
|
||||
else {
|
||||
this.lblTitle.setIcon((ImageIcon)null);
|
||||
|
||||
Reference in New Issue
Block a user