问题标签 [twelvemonkeys]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
weblogic - 带有 TwelveMonkeys 的 ClassCastExceptions 甚至在 Weblogic 12c 上的隔离应用程序类加载器上
我们有两个网络应用程序;AppA(作为 EAR)使用TwelveMonkeys,而 AppB(作为 WAR)使用JAI。
这些 Web 应用程序部署在 Weblogic 12c 上,其中每个应用程序彼此隔离。它们都具有应用程序级类加载器(以确保一个应用程序上的库不会与另一个应用程序冲突),以及容器级和系统级类加载器。
我们已配置系统以确保仅通过 AppA 应用程序级类加载器加载 TwelveMonkeys。然而,AppB 不知何故仍能看到 TwelveMonkeys 类和遭遇ClassCastExceptions
。
有没有办法正确强制 TwelveMonkeys 仅在一个应用程序的范围内,而不是所有应用程序(这种情况似乎指向)?
这种行为通常归因于 TwelveMonkeys,还是 Weblogic 问题?TwelveMonkeys 是否可以很好地与其他容器中的多个应用程序配合使用?
java - 使用 Twelvemonkeys ImageIO 读取 TIFF ICC 配置文件
我需要从 TIFF 文件中提取嵌入的 ICC 配置文件。我可以阅读IIOMetadata
并且我的 IDE 显示ifd
包含 ICC 配置文件的字段(标签 ID 34675)。但是我怎样才能把它读到一个ICC_Profile
对象上呢?
java - 在纯 Java 中读取图像、修改元数据和重写图像
我需要能够更新图像元数据(即标签、创建者、描述、评论)并在常规 Exif 和 XMP 中进行。最有可能的是,我将阅读 Exif,并编写 XMP。
在搜索了一个也可以用于写作的图书馆之后,我遇到了十二只猴子。
https://github.com/haraldk/TwelveMonkeys
这似乎很有希望。事实上,我不费吹灰之力就已经能够阅读我的一张图片中包含描述的 Exif。请注意,不是使用标准的 javax API,而是使用十二猴 API。这对我来说没问题。什么都行!
在这一点上,我很高兴尽可能地避免使用标准 API,因为它看起来非常复杂且效率低下。我开始阅读我的 Exif,并为我的概念验证编写修改代码。这个想法是,实现我想要的最有效的方法(快速和安全地修改 JPEG 文件中的元数据)是执行以下步骤:
- 将所有段读入列表
- 找到需要修改的段
- 做那个修改
- 将所有段按顺序写入临时文件
- 如果一切顺利,将原始文件重命名为以后安全删除,将副本重命名为原始名称,最后删除原始文件。
但是,当我发现似乎没有实现的时候,我有点沮丧
它实现了方法
和
除了 a
如果这不是有效(和安全)实现我想要做的事情的方法......有没有人有关于如何在纯Java中做到这一点的建议?
java - 无论如何配置十二只猴子JPEGSegmentUtil段阅读器来读取JPEG的所有段
我目前正在我希望创建的应用程序中对功能进行原型设计,这需要能够读取/修改/写入 jpeg 文件的元数据。
我认为可能适用的一种方法是使用 12-monkeys java API 读取所有段,修改我感兴趣的元数据段,并将所有段(其中大部分未修改)写回新文件。
在我的原型设计中,我遇到了一个障碍,它引发了一个问题,我不得不承认,主要针对 API 的作者。如果您不是作者,也可以提供一些见解,我当然不会拒绝;)
这是我的代码的摘录:
xcvxvx
在测试上面的代码时,我看到了 10 个段,如下所示:
我尝试对 JPEG/Exif 文件的结构进行一些研究,并一直在阅读规范;例如,显然图像数据是文件中最后一个“FF D9”标记之前的最后一件事。如何读取(或至少找到)每个标记(各种标记,如 FFE0、FFE1、FFC2 等),其后跟 4 个字节,指示该标记段的长度。在像这样手动阅读文件时(例如,使用 Bless Hex 编辑器),我阅读了与该库相同的所有段......直到
在上面列表中显示的最后一个“FF DA”标记之后,我看到(在文件中)一大堆其他标记,我假设(我需要做更多的研究)实际的主图像数据。尽管如此,它似乎仍被分成不同的部分,可以使用与上述相同的规则(读取标记、读取长度、跳过长度、查找下一个标记)进行排序,除了“FF DA”段之后的下一个标记是并不总是直接在该标记的指定长度之后。在阅读另一篇stackoverflow文章的一些建议时(对不起,我现在已经丢失了),有人被告知只需向前跳,直到找到下一个'FFxx'标记(在我的情况下为FFC4)并继续。
现在,我的问题是,如果这些是标记或片段(我仍然对术语感到困惑),为什么图书馆不选择它们?
好吧,我大概可以猜到答案;
它们不是通常意义上的标记……它们是主要的图像数据……这就是原因。
所以我的后续问题是;
那么,我是否可以在某个点(什么点)只考虑一个块的其余数据,并且由于我不需要修改它,所以将其写在所有段的末尾?
如何最好地读取该数据块(无需重置流并从头开始再次读取整个图像?
我可能会搞错这一切,但我一直在寻找一种有效的方法来生成带有修改后的元数据的图像文件,别无其他!我知道在使用 java 库读取整个文件然后重新编写它时,您基本上是在重新编码并更改整个文件。您可能只是在很小程度上降低了图像文件的质量,只是为了修改元数据。我错了吗?我不想要那个!必须有更好的方法(无需从头开始编写我自己的图像阅读器/写入器)!
感谢您的任何建议!
肖恩
java - 图像元数据未从 jpeg 复制到 tif 文件,使用 Java ImageIO 和十二猴子
当我尝试将“.jpg”文件的内容复制到新的“.tif”文件时,不会保留 IIOMetadata。我需要保留的主要元数据标签是:compressionTypeName、horizontalPixelSize 和 VerticalPixelSize。
这是复制过程的简化代码:
这是包含在读取的 .jpg 文件中的“javax_imageio_1.0”格式中包含的元数据:
这是我的程序在 .tif 文件中写入的相同格式名称“javax_imageio_1.0”中包含的元数据
CompressionTypeName、HorizontalPixelSize 和 VerticalPixelSize 值丢失或更改。
java - TIFF 图像上的水印
我正在尝试使用 java 在图像上添加水印。目前,我在扩展名为 png、jpeg 的图像上添加了水印,但代码不适用于 tiff 图像。以前它给出了空指针错误,但在包含十二个核心和 tiff 插件 jar 之后,空指针错误消失了,代码正在逐行执行。但是输出的 tiff 图像没有水印。
任何人都可以提供一种在 tiff 图像上添加水印的方法吗?
scala - TwelveMonkeys 是否提供图像裁剪功能?
我正在尝试使用 TwelveMonkeys 库进行图像处理;但找不到类似于org.imgscalr.crop(BufferedImage src, int x, int y, int width, int height, BufferedImageOp... ops)
根据x, y, width, height
参数裁剪输入图像的方法。
javax.imageio - 我们如何调整灰度和黑白图像的对比度和亮度
我正在尝试使用 ImageUtil.contrast 调整亮度和对比度结果它仅适用于 RGB 图像。所以这意味着我可能不知道关于灰色和双级图像的一些事情。
Pixel wise Pixel 的任务太重了,如果有滤镜就好了。
对于 RGB,它按预期工作,但对于 B/W 和 GREY 却失败了。
有任何想法吗?
java - 依赖关系引入了一个传递库,该库使用 TIFF 文件破坏 ImageIO.read
我目前正在尝试将一个单独的项目合并到我们的项目中,该项目使用 deeplearning4j-core 作为依赖项。deeplearning4j-core
在内部使用com.twelvemonkeys.imageio
,它将插件注册到ImageIO.read()
. 但是,这似乎破坏了ImageIO.read
我们目前在生产中的所有调用,并显示以下错误消息:
我们正在读取以前没有识别出问题的 TIFF 文件。现在它们根本无法读取,并且在软件启动的 90% 的时间里都会抛出上面列出的异常。10% 的时间,它可以顺利运行,直到 JVM 挂起。这让我觉得这是一个加载顺序问题,但我太缺乏经验,无法解决。
我知道潜在的问题可能更大,但现在启动并运行它首先具有很高的优先级。
我们正在使用 gradle。