- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JAI 向图像添加“边框”。例如
ParameterBlock pb = new ParameterBlock();
pb.addSource(r);
pb.add(leftPad);
pb.add(rightPad);
pb.add(topPad);
pb.add(bottomPad);
pb.add(new BorderExtenderConstant(consts));
r = JAI.create("border", pb);
上面“consts”的值取决于 ColorModel。使用 ComponentColorModel 时,每个像素都有自己的颜色,因此我不必弄乱调色板。当图像有调色板(GIF、PNG 等)时,ColorModel 为 IndexColorModel。
当使用 IndexColorModel 时,“consts”是一个 double[] 数组,大小为 1。数组中的值是调色板中的索引。
我已经找到了如何通过创建新的 IndexColorModel 来修改调色板,但我必须编写的逻辑将是疯狂的! (例如,调色板中可以有多少种颜色取决于许多因素。此外,如果我需要从调色板中删除一种颜色以添加新颜色,我需要逻辑来确定哪种颜色最好删除并然后修改之前引用该颜色的所有像素——哇,代码太多了!)
所以,我的问题是,如何向调色板添加颜色?有现成的图书馆吗?或者我应该使用 ioimage 中的东西? (说实话,我有点困惑 jai “结束”和 ioimage “开始”。)
另外,由于某种原因,我的测试图像在调色板中只有大约 10 种颜色,但被读取为具有 256 种颜色。然后,当我使用 jai 保存图像时,所有 256 种颜色都会被保存(11 到 255 都是黑色)。知道为什么要这样做吗?
谢谢!大卫
最佳答案
针对上述问题,我能想到的最佳解决方案是将图像从 IndexColorModel 转换为 ComponentColorModel。 (ComponentColorModel 的每个像素指定其自己的颜色,因此您无需使用调色板 - 您可以轻松使用您想要的任何颜色。)
阅读 http://java.sun.com/products/java-media/jai/forDevelopers/jaifaq.html#palette 后,我想出了这个简单的解决方案
这就是我在阅读以下图像后所做的事情:
if(image.getColorModel() instanceof IndexColorModel) {
IndexColorModel icm = (IndexColorModel)image.getColorModel();
byte[][] data = new byte[4][icm.getMapSize()];
icm.getReds(data[0]);
icm.getGreens(data[1]);
icm.getBlues(data[2]);
icm.getAlphas(data[3]);
LookupTableJAI lut = new LookupTableJAI(data);
image = JAI.create("lookup", image, lut);
}
完成操作后,您可以将图像隐藏回来。我还没有花时间去弄清楚这一点。如果其他人想弄清楚,您可能需要阅读以下内容:http://www.java.net/node/675577
关于java - 使用 JAI,如何向调色板添加新颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8055522/
我在我的应用程序中使用了 jai(Java Advance Imaging)。 当我使用 jai 设置时,我觉得我的图像处理速度更快,但它需要在用户计算机上安装这些设置。 当我使用 Jai 的 Jar
我正在尝试使用 javax.media.jai.JAI 读取 .tif 图像。这是我的代码: import javax.media.jai.JAI; import javax.media.jai.Re
JAI 的 FileLoad/FileStore 操作和 ImageRead/ImageWrite 操作有什么区别? 其中一套在任何方面都比另一套更好吗?哪些应该用作默认值? 最佳答案 FileLoa
我最近使用 GeoTools 开始了我的第一个程序,其中我还使用了 JAI-Java Advanced Imaging 1_1_2_01 和 JDK 1_7。 在我添加 GeoTiff Jars 之前
我正在使用 JAI 读取 java 中的 Tiff 文件。使用此代码: RenderedOp renderer = JAI.create("fileload", tifFilename); retur
我想知道是否有人有让 JAI 从多个平台的小程序自动安装的经验。我看过 http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide
我正在使用 JAI 库对一系列图像进行调整,每个图像的大小约为 1300x1000。我使用“Rescale”调整像素强度,并使用 TiledImage.createGraphics() 方法中的 Gr
我正在此处查看现有的 Java CT 图像 显示程序。我尝试了解查找表在JAI中的工作原理。 来自JAI guide, section 7.6 ,我读到了这个: 输入像素值充当查找表输入的地址。查找表
我尝试保存 tiff 而不是彩色灰度。我怎么能这样做? (必须使用JAI,因为它是tiff!) 提前致谢并致以最诚挚的问候。 最佳答案 你想要的是下载 JAI Image I/O Tools ,它为
本文整理了Java中javax.media.jai.WarpPolynomial类的一些代码示例,展示了WarpPolynomial类的具体用法。这些代码示例主要来源于Github/Stackover
本文整理了Java中javax.media.jai.WarpAffine类的一些代码示例,展示了WarpAffine类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Mav
我已经读取了相当大的图像(jpeg)的应用程序,但只需要处理较小的图像,因此我使用类似的东西对它们进行子采样 ImageReadParam param = reader.getDefaultReadP
我正在尝试使用 JAI 创建一个由 4 个 TIF 图像组成的马赛克,每个图像的尺寸为 5000 x 5000。我编写的代码如下.. RenderedOp mosaic=null; P
我正在尝试使用 GeoTIFF-jai 库在 Java 中生成经过地理校正的光栅图像。我尝试在 SourceForge 网站上查找有关如何执行此操作的文档,但 SourceForge 说“不幸的是,该
JAI ImageIO-core 附带一组 native 编解码器。编解码器捆绑在一组 .so 和 .dll 文件中。主要是clib_jiio.dll clib_jiio_sse2.dll clib_
我正在尝试将多个图像串联成一个,但遇到了问题。为了隔离这个问题,我创建了以下 POC,我正在尝试解决该问题,以便了解如何使用 JAI API。 在 POC 中,我有两个图像“image1.gif”和“
我正在使用 JAI 向图像添加“边框”。例如 ParameterBlock pb = new ParameterBlock(); pb.addSource(r); pb.add(leftPad); p
我一直在使用 JAI 来写入和读取 TIFF 图像,但我最近在编码灰度图像时遇到了一个问题,我在每个 strip 的末尾得到 7 个黑色 (0) 像素 (8每条线数): 只有在使用下面的 SSCE 将
我想开发具有大量图像处理功能的程序。我想使用 Java 和 JAI,但在我看来,Jai 已经老了,不再进化了? ( http://java.sun.com/javase/technologies/de
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我是一名优秀的程序员,十分优秀!