除了使用ImageIO.read获取图像高度和宽度之外还有其他方法吗?
因为我遇到了锁定线程的问题.
at com.sun.medialib.codec.jpeg.Decoder.njpeg_decode(Native Method)
at com.sun.medialib.codec.jpeg.Decoder.decode(Decoder.java:87)
at com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader.decode(CLibJPEGImageReader.java:73)
- locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader)
at com.sun.media.imageioimpl.plugins.clib.CLibImageReader.getImage(CLibImageReader.java:320)
- locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader)
at com.sun.media.imageioimpl.plugins.clib.CLibImageReader.read(CLibImageReader.java:384)
- locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader)
at javax.imageio.ImageIO.read(ImageIO.java:1400)
at javax.imageio.ImageIO.read(ImageIO.java:1322)
Run Code Online (Sandbox Code Playgroud)
此错误仅发生在Sun应用服务器上,因此我怀疑它是Sun错误.
我想从单个文件中读取图像元数据。我尝试了以下代码:
http://johnbokma.com/java/obtaining-image-metadata.html
当我运行它时,我得到了build successful但什么也没有发生。
public class Metadata {
public static void main(String[] args) {
Metadata meta = new Metadata();
int length = args.length;
for ( int i = 0; i < length; i++ )
meta.readAndDisplayMetadata( args[i] );
}
void readAndDisplayMetadata( String fileName ) {
try {
File file = new File( fileName );
ImageInputStream iis = ImageIO.createImageInputStream(file);
Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
if (readers.hasNext()) {
// pick the first available ImageReader
ImageReader reader = readers.next();
// attach source to …Run Code Online (Sandbox Code Playgroud)