Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从java缓冲映像创建与CF兼容的映像_Java_Coldfusion_Coldfusion 9 - Fatal编程技术网

如何从java缓冲映像创建与CF兼容的映像

如何从java缓冲映像创建与CF兼容的映像,java,coldfusion,coldfusion-9,Java,Coldfusion,Coldfusion 9,如何在不使用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 d

如何在不使用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()的情况下(它有,请参阅),如何使用CF中的JAVA将其更改为我可以使用的兼容CF image对象。

(从上面的注释来看,答案是不同的)

如前所述,使用
toBase64(imageObject)
imageGetBlob
可能会导致图像质量下降,因为
png
图像被转换为
jpg
格式。这些函数似乎无法正确确定返回格式

一种可能的解决方法是使用未记录的
Image.getImageBytes(format)
方法,该方法允许您明确指定输出格式

<cfset bytes = yourCFImageObject.getImageBytes("png")>


检查修补程序-image stuff get在HFs中进行了很多调整,因此您可能会找到一个解决转换问题的方法,但除此之外,我认为您需要在这里找到一个“纯Java”解决方案,并停止尝试将其带回CF本机标记中。这太遗憾了。无论结果如何,它必须是一个CF兼容的对象tho:)我已经为9.0.1应用了所有热修复程序。imagenew的问题仍然存在。@Spark-imagenew的问题是什么?因为正如Mark所建议的,您试图避免的是指向CF兼容映像的正常路径(可能是唯一的路径):即将BuffereImage传递到ImageNew。@Spark-那么base64转换是唯一的问题吗?因为可能还有其他方法来获取图像字节。我同意Peter关于png正在转换为jpg的评论(这解释了质量下降的原因)。但是稍后您提到了
imageGetBlob()
和jpeg的一个问题。我尝试了一些图像,但没有观察到严重的退化。你有没有可能用一张图片来演示JPEG的问题?