次のように、別のイメージから新しいイメージを作成するだけです。
public static void scaleByTwoRight(String src, String dest)
throws IOException {
BufferedImage bsrc = ImageIO.read(new File(src));
int width = bsrc.getWidth()/2;
int height = bsrc.getHeight();
BufferedImage bdest = bsrc.getSubimage(width, 0, width, height);
ImageIO.write(bdest,"PNG",new File(dest));
}
ソースファイル (src) = C:...\Manga\Shonan Juna_ 組本 11\Shonan Junaï Gumi Tome 11 - 091B.png 宛先ファイル (dest) = C:...\Manga\Shonan Junaï Gumi Tome 11 - 091B_A .png
生成されたファイルの例: https://docs.google.com/file/d/0B1vKCZzB5hxqYzNsUWF5RHA2Wm8/edit?usp=sharing
問題: 新しいイメージには mimetype: image ではなく mimetype: application があります
この結論に到達する方法: 関数を使用して、ファイルが画像かどうかをテストしています。
public static boolean isImage(String src)
throws IOException {
File f = new File(src);
String mimetype= new MimetypesFileTypeMap().getContentType(f);
String type = mimetype.split("/")[0];
if(type.equals("image")){
return true;
}else{
System.out.println("mimetype: "+type);
return false;
}
}
Mime タイプが正しくなくても大きな影響はありませんが、適切に動作することを好みます..
ご協力いただきありがとうございます!
注: Windows 7 / 32b JVM 1.7 / Eclipse Helios で実行しています。