gpt4 book ai didi

java - 无法获取 .tif 文件的页数

转载 作者:行者123 更新时间:2023-12-01 09:05:07 24 4
gpt4 key购买 nike

我有 tiff 文件,我想获取页数。我已被关注this问题,但我无法获得页数。没有错误,我尝试调试问题但找不到原因。

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import javax.swing.JOptionPane;
import java.io.File;
import java.io.IOException;
import java.awt.Frame;
import java.awt.image.RenderedImage;
import javax.media.jai.widget.ScrollingImagePanel;
import javax.media.jai.NullOpImage;
import javax.media.jai.OpImage;
import com.sun.media.jai.codec.SeekableStream;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.TIFFDecodeParam;
import com.sun.media.jai.codec.ImageDecoder;
import com.sun.media.jai.codec.ImageCodec;




public class FileSearch {

int sizeOfFile = Integer.parseInt((JOptionPane.showInputDialog(null,"Enter Size: ")));

public void findFiles(File root) throws IOException {

File[] listOfFiles = root.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
String iName = listOfFiles[i].getName();
if (listOfFiles[i].isFile() && iName.endsWith(".tif")) {

long fileSize = listOfFiles[i].length();

if (fileSize <= (sizeOfFile*1000)) {
File file = new File("\\\\server\\folder1\\TestFiles\\" + listOfFiles[i].getName());

if (file.exists()) {
System.out.println(file.getName() + " already exists");
} else {
File folder = new File("\\\\server\\folder1\\TestFiles\\\\Files by Size\\Files of size " + ((sizeOfFile*1000) / 1000) + " KB");
if (!folder.exists()) {
if (folder.mkdir()) {
System.out.println("Folder : " + folder.getAbsolutePath());
}
}

/* Start here */

SeekableStream s = new FileSeekableStream(new File("C:\\Users\\username\\Desktop\\file.tif")); //using this file as test

TIFFDecodeParam param = null;

ImageDecoder dec = ImageCodec.createImageDecoder(".tif", s, param);

System.out.println("Number of images in this TIFF: " +
dec.getNumPages());
JOptionPane.showMessageDialog(null, dec.getNumPages());
/* END HERE */

try{
System.out.println(listOfFiles[i].getName() + " | " + FileUtils.byteCountToDisplaySize(fileSize));
FileUtils.copyFileToDirectory(listOfFiles[i], folder);
}
catch(IOException e){
System.out.println("Same files");
return;
}
}
}
}

else if (listOfFiles[i].isDirectory()) {
findFiles(listOfFiles[i]);
}
}
}
}

我将 ImageDecoder dec = ImageCodec.createImageDecoder("tiff", s, param); 更改为 ImageDecoder dec = ImageCodec.createImageDecoder(".tif", s, param); 查看是否有任何不同的结果。

最佳答案

回答我的问题:

更改 START TO END 部分之间的以下内容

RenderedImage renderedImage[], page;
File tiffFile = new File("C:\\Users\\username\\Desktop\\file.tif");

SeekableStream seekableStream = new FileSeekableStream(tiffFile);
ImageDecoder imageDecoder = ImageCodec.createImageDecoder("tiff",seekableStream, null);
renderedImage = new RenderedImage[imageDecoder.getNumPages()];

int tifPageCount = 0;
for (int k = 0; k < imageDecoder.getNumPages(); k++) {
renderedImage[k] = imageDecoder.decodeAsRenderedImage(k);
tifPageCount++;
}

关于java - 无法获取 .tif 文件的页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41347584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com