【发布时间】:2011-01-11 17:31:02
【问题描述】:
如何处理 HTML 页面中的TIFF 图像?
我尝试过使用嵌入标签、对象 id、img 等。但是,我无法在 HTML 页面中显示 TIFF 图像。
我没有在我的项目中使用 Java、.NET 或任何其他替代方案。
更新: Safari 支持 TIFF 图像加载。如何在其他浏览器(IE、Mozilla、Firefox 等)中加载 TIFF 图像?
【问题讨论】:
如何处理 HTML 页面中的TIFF 图像?
我尝试过使用嵌入标签、对象 id、img 等。但是,我无法在 HTML 页面中显示 TIFF 图像。
我没有在我的项目中使用 Java、.NET 或任何其他替代方案。
更新: Safari 支持 TIFF 图像加载。如何在其他浏览器(IE、Mozilla、Firefox 等)中加载 TIFF 图像?
【问题讨论】:
您可以尝试将图像从 tiff 转换为 PNG,方法如下:
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageDecoder;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.PNGEncodeParam;
import com.sun.media.jai.codec.TIFFDecodeParam;
import java.awt.image.RenderedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import javaxt.io.Image;
public class ImgConvTiffToPng {
public static byte[] convert(byte[] tiff) throws Exception {
byte[] out = new byte[0];
InputStream inputStream = new ByteArrayInputStream(tiff);
TIFFDecodeParam param = null;
ImageDecoder dec = ImageCodec.createImageDecoder("tiff", inputStream, param);
RenderedImage op = dec.decodeAsRenderedImage(0);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PNGEncodeParam jpgparam = null;
ImageEncoder en = ImageCodec.createImageEncoder("png", outputStream, jpgparam);
en.encode(op);
outputStream = (ByteArrayOutputStream) en.getOutputStream();
out = outputStream.toByteArray();
outputStream.flush();
outputStream.close();
return out;
}
}
【讨论】:
com.sun.media.jai.codec?我试图在网上寻找它,但没有 JAR
Tiff 图像只能直接显示在 IE 和 safari 上。不支持 chrome 和 firefox 上的 tiff 图像。您可以对图像进行编码,然后通过将编码的图像解码为其他格式将其显示在浏览器上。 希望这对你有用
【讨论】:
这归结为浏览器图像支持;看来支持 tiff 的主流浏览器只有 Safari:
http://en.wikipedia.org/wiki/Comparison_of_web_browsers#Image_format_support
您从哪里获得 tiff 图像?是否可以以不同的格式生成它们?
如果您有一组静态图像,那么我建议您使用 PaintShop Pro 之类的东西来批量转换它们,更改格式。
如果这不是一个选项,那么寻找可以在浏览器中显示图像的预先编写的 Java 小程序(或其他浏览器插件)可能会花费一些时间。
【讨论】:
我找到了详细介绍各种方法的资源:@987654321@
如前所述,它在很大程度上取决于浏览器对格式的支持。在 Windows 上的 Chrome 中查看该页面未显示任何图像。
如果您发布您已经尝试过的代码也会很有帮助。
【讨论】: