0

当我像这样简单地从另一个创建新图像时:

  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_ Gumi Tome 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: application 而不是 mimetype: image

我如何得出这个结论:我正在使用一个函数来测试文件是否是图像:

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 下运行

4

1 回答 1

0

您的代码在我的机器上运行良好。我有 windows XP,32 位,尝试使用 jpeg 图像,它只返回 mimetype 作为图像/jpeg。希望您不要尝试同时执行这两个功能。目标文件名也应包含正确的扩展名,如 .jpeg 或。等..png

于 2013-04-12T09:34:34.413 回答