package charactermanaj.graphics.io;\r
\r
import java.awt.image.BufferedImage;\r
+import java.awt.image.DataBuffer;\r
\r
/**\r
* ロードされたイメージ情報\r
public final class LoadedImage {\r
\r
private final BufferedImage image;\r
- \r
+\r
private final long lastModified;\r
- \r
+\r
+ private final int imageSize;\r
+\r
public LoadedImage(BufferedImage image, long lastModified) {\r
this.image = image;\r
this.lastModified = lastModified;\r
+ this.imageSize = getBufferSize(image);\r
}\r
- \r
+\r
public BufferedImage getImage() {\r
return image;\r
}\r
- \r
+\r
public long getLastModified() {\r
return lastModified;\r
}\r
- \r
+\r
+ public int getImageSize() {\r
+ return imageSize;\r
+ }\r
+\r
+ /**\r
+ * 画像バッファのバイト数を求める.<br>\r
+ * @param image イメージ\r
+ * @return バイト数\r
+ */\r
+ private static int getBufferSize(BufferedImage image) {\r
+ if (image == null) {\r
+ return 0;\r
+ }\r
+ DataBuffer buff = image.getRaster().getDataBuffer();\r
+ int bytes = buff.getSize() * DataBuffer.getDataTypeSize(buff.getDataType()) / 8;\r
+ return bytes;\r
+ }\r
}\r