“mimetype:application”在ImageIO.write之后显示在图片上而不是“mimetype:image”

时间:2013-04-12 09:18:21

标签: java image file-io mime-types

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

  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 \ShonanJunaïGumiTome 11 - 091B.png 目标文件(dest)= C:... \ Manga \ShonanJunaïGumiTome 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

1 个答案:

答案 0 :(得分:0)

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