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;
  }
}
 
傍水
傍水

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值