如何在不使用 CF ImageNew() 函数的情况下从 java 缓冲图像创建与 CF 兼容的图像对象?
imageCFCObj = createObject("component","imagecfc.image" );
local.img1 = imageCFCObj.readImage("D:#arguments.directoryPath#");
// local.img1 now of type java.awt.image.BufferedImage
// from here how do you create a CF compatible image object?
(更新以包含链接)因此,在不使用 CF 函数 ImageNew() 的情况下(它在自动输出/转换代码方面存在重大问题,请参阅错误 #3177303 ) 您如何在 CF 中使用 JAVA 将其更改为我可以使用的兼容 CF 图像对象。
(从上面的评论来看,答案最终走向了不同的方向)。
如此线程中所述,使用 toBase64(imageObject)
和 imageGetBlob
可能会导致图像质量下降png
因为图像会转换为jpg
格式。这些函数似乎错误地确定了返回格式。
一种可能的解决方法是使用未记录的 Image.getImageBytes(format)
方法,该方法允许您显式指定输出格式。
<cfset bytes = yourCFImageObject.getImageBytes("png")>