mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
commit
42ac37fe40
1 changed files with 11 additions and 2 deletions
|
@ -165,10 +165,10 @@ public class SkinProvider {
|
||||||
Geyser.getLogger().debug("Downloaded " + imageUrl);
|
Geyser.getLogger().debug("Downloaded " + imageUrl);
|
||||||
|
|
||||||
if (cape) {
|
if (cape) {
|
||||||
|
image = image.getWidth() > 64 ? scale(image) : image;
|
||||||
BufferedImage newImage = new BufferedImage(64, 32, BufferedImage.TYPE_INT_RGB);
|
BufferedImage newImage = new BufferedImage(64, 32, BufferedImage.TYPE_INT_RGB);
|
||||||
|
|
||||||
Graphics g = newImage.createGraphics();
|
Graphics g = newImage.createGraphics();
|
||||||
g.drawImage(image, 0, 0, 64, 32, null);
|
g.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null);
|
||||||
g.dispose();
|
g.dispose();
|
||||||
image = newImage;
|
image = newImage;
|
||||||
}
|
}
|
||||||
|
@ -193,6 +193,15 @@ public class SkinProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static BufferedImage scale (BufferedImage bufferedImage) {
|
||||||
|
BufferedImage resized = new BufferedImage(bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2, BufferedImage.TYPE_INT_RGB);
|
||||||
|
Graphics2D g2 = resized.createGraphics();
|
||||||
|
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
|
||||||
|
g2.drawImage(bufferedImage, 0, 0, bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2, null);
|
||||||
|
g2.dispose();
|
||||||
|
return resized;
|
||||||
|
}
|
||||||
|
|
||||||
public static <T> T getOrDefault(CompletableFuture<T> future, T defaultValue, int timeoutInSeconds) {
|
public static <T> T getOrDefault(CompletableFuture<T> future, T defaultValue, int timeoutInSeconds) {
|
||||||
try {
|
try {
|
||||||
return future.get(timeoutInSeconds, TimeUnit.SECONDS);
|
return future.get(timeoutInSeconds, TimeUnit.SECONDS);
|
||||||
|
|
Loading…
Reference in a new issue