java读取图像width和height

支持jpg,gif,psd,png。

lib=metadata-extractor-2.6.2.jar,xmpcore.jar

libUrl=http://code.google.com/p/metadata-extractor/

import java.io.File;
import java.io.IOException;

import javax.swing.ImageIcon;

import com.drew.imaging.ImageMetadataReader;
import com.drew.imaging.ImageProcessingException;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;

public class ImgProp {
  private int width = -1;
  private int height = -1;
  private String ext = null;
  private String path = null;

  public ImgProp(String filePath) throws ImageProcessingException, IOException {
    this.path = filePath;
    int i1 = filePath.lastIndexOf('.');
    this.ext = filePath.toLowerCase().substring(i1 + 1);
    if ("psd".equals(ext)) {
      getPsdInfo();
    } else {
      getImgInfo();
    }
  }

  private void getPsdInfo() throws ImageProcessingException, IOException {
    File file = new File(path);
    Metadata metadata = ImageMetadataReader.readMetadata(file);
    for (Directory directory : metadata.getDirectories()) {
      for (Tag tag : directory.getTags()) {
        if ("Image Height".equals(tag.getTagName())) {
          height = Integer
              .parseInt(tag.getDescription().replace(" pixels", ""));
        } else if ("Image Width".equals(tag.getTagName())) {
          width = Integer.parseInt(tag.getDescription().replace(" pixels", ""));
        }
        if (height > 0 && width > 0) {
          break;
        }
      }
    }
  }

  public void getImgInfo() {
    ImageIcon image = new ImageIcon(path);
    width = image.getIconWidth();
    height = image.getIconHeight();
  }

  public int getWidth() {
    return width;
  }

  public void setWidth(int width) {
    this.width = width;
  }

  public int getHeight() {
    return height;
  }

  public void setHeight(int height) {
    this.height = height;
  }
}
 
傍水
傍水

猜你喜欢

转载自bg090721.iteye.com/blog/1547182
今日推荐