如何在不使用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()(它有major issue with automatic output/conversion code,请参阅bug #3177303)如何使用CF中的JAVA将其更改为我可以使用的兼容CF图像对象。
答案 0 :(得分:3)
(从上面的评论中,答案最终朝着不同的方向发展)。
如上所述in this thread使用toBase64(imageObject)
和imageGetBlob
可能会导致图像质量下降,因为png
图片会转换为jpg
格式。这些函数似乎错误地确定了返回格式。
可能的解决方法是使用未记录的 Image.getImageBytes(format)
方法,该方法允许您明确指定输出格式。
<cfset bytes = yourCFImageObject.getImageBytes("png")>