Move getImageSpritePixels to ImageUtil

This commit is contained in:
TheStonedTurtle
2018-12-09 17:49:37 -08:00
parent 7268d2cf34
commit 8ab704f8a3
3 changed files with 33 additions and 39 deletions

View File

@@ -26,7 +26,6 @@
package net.runelite.client.plugins.banktags.tabs;
import java.awt.image.BufferedImage;
import java.awt.image.PixelGrabber;
import java.util.HashMap;
import java.util.Map;
import lombok.Getter;
@@ -61,26 +60,9 @@ public enum TabSprites
for (TabSprites value : values())
{
map.put(value.spriteId, getSpritePixels(client, value.image));
map.put(value.spriteId, ImageUtil.getImageSpritePixels(value.image, client));
}
return map;
}
private static SpritePixels getSpritePixels(Client client, BufferedImage image)
{
int[] pixels = new int[image.getWidth() * image.getHeight()];
try
{
new PixelGrabber(image, 0, 0, image.getWidth(), image.getHeight(), pixels, 0, image.getWidth())
.grabPixels();
}
catch (InterruptedException ex)
{
log.debug("PixelGrabber was interrupted: ", ex);
}
return client.createSpritePixels(pixels, image.getWidth(), image.getHeight());
}
}

View File

@@ -28,7 +28,6 @@ package net.runelite.client.plugins.interfacestyles;
import com.google.inject.Provides;
import java.awt.image.BufferedImage;
import java.awt.image.PixelGrabber;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
@@ -47,6 +46,7 @@ import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.game.SpriteManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.util.ImageUtil;
@Slf4j
@PluginDescriptor(
@@ -195,7 +195,7 @@ public class InterfaceStylesPlugin extends Plugin
{
log.debug("Loading: " + filePath);
BufferedImage spriteImage = ImageIO.read(inputStream);
return getImageSpritePixels(spriteImage);
return ImageUtil.getImageSpritePixels(spriteImage, client);
}
catch (IOException ex)
{
@@ -209,23 +209,6 @@ public class InterfaceStylesPlugin extends Plugin
return null;
}
private SpritePixels getImageSpritePixels(BufferedImage image)
{
int[] pixels = new int[image.getWidth() * image.getHeight()];
try
{
new PixelGrabber(image, 0, 0, image.getWidth(), image.getHeight(), pixels, 0, image.getWidth())
.grabPixels();
}
catch (InterruptedException ex)
{
log.debug("PixelGrabber was interrupted: ", ex);
}
return client.createSpritePixels(pixels, image.getWidth(), image.getHeight());
}
private void adjustWidgetDimensions()
{
for (WidgetOffset widgetOffset : WidgetOffset.values())
@@ -284,7 +267,7 @@ public class InterfaceStylesPlugin extends Plugin
if (compassImage != null)
{
SpritePixels compass = getImageSpritePixels(compassImage);
SpritePixels compass = ImageUtil.getImageSpritePixels(compassImage, client);
client.setCompass(compass);
}
}

View File

@@ -30,16 +30,21 @@ import java.awt.Image;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.PixelGrabber;
import java.awt.image.RescaleOp;
import java.io.IOException;
import java.util.Arrays;
import javax.imageio.ImageIO;
import javax.swing.GrayFilter;
import java.util.function.Predicate;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.SpritePixels;
/**
* Various Image/BufferedImage utilities.
*/
@Slf4j
public class ImageUtil
{
/**
@@ -407,4 +412,28 @@ public class ImageUtil
{
return new RescaleOp(scales, offsets, null).filter(image, null);
}
/**
* Converts the buffered image into a sprite image and returns it
* @param image The image to be converted
* @param client Current client instance
* @return The buffered image as a sprite image
*/
public static SpritePixels getImageSpritePixels(BufferedImage image, Client client)
{
int[] pixels = new int[image.getWidth() * image.getHeight()];
try
{
new PixelGrabber(image, 0, 0, image.getWidth(), image.getHeight(), pixels, 0, image.getWidth())
.grabPixels();
}
catch (InterruptedException ex)
{
log.debug("PixelGrabber was interrupted: ", ex);
}
return client.createSpritePixels(pixels, image.getWidth(), image.getHeight());
}
}