gpt4 book ai didi

coldfusion - 使用 CF8 cfimage 标签生成缩略图 - 图像元数据导致文件过大

转载 作者:行者123 更新时间:2023-12-04 05:54:03 25 4
gpt4 key购买 nike

我正在构建一个小型网络应用程序,可以在上传图像后将图像调整为不同的像素尺寸。

我正在尝试从 3mb 的 jpg 图像创建 150px X 100px 的缩略图,但无法获得小于 68kb 的文件大小(我希望根据压缩类型等生成 4kb 和 15kb 之间的文件)。

我使用了标签的 action="resize"方法,还使用了 ImageResize() 和 imageScaleToFit() 函数,但所有这些方法都保持了 exif 和 IPTC 元数据的完整性(我假设这是保持缩略图文件尽可能大)。

如果我使用没有任何元数据的图像,它会按预期将缩略图调整为较小的文件大小。

我是否可以使用任何 CF8 的内置图像函数从图像中去除 exif 和 IPTC 元数据以减小缩略图大小?

最佳答案

您可以使用 Sanselan用于删除 EXIF 和 IPTC 元数据的 Java 库。以下是使用此库中的 removeExifMetadata 的代码示例:

<cfscript>
// setup and init the Sanselan library
SanselanPath = arrayNew(1);
arrayAppend(SanselanPath, expandPath("sanselan\sanselan-0.97-incubator.jar"));
javaloader = createObject("component", "javaloader.JavaLoader").init(SanselanPath);

// setup your source and destination image
pathToInFile = ExpandPath("myImage.jpg");
pathToOutFile = ExpandPath("MyImagewoEXIF.jpg");
inFile = javaloader.create("java.io.FileInputStream").init(pathToInFile);
outFile = javaloader.create("java.io.FileOutputStream").init(pathToOutFile);

// create the exifRewriter
exifRewriter = javaloader.create("org.apache.sanselan.formats.jpeg.exifRewrite.ExifRewriter").init();

// call the method removeExifMetadata
exifRewriter.removeExifMetadata(inFile,outFile);
outFile.close();
</cfscript>

您可以使用 iptc.JpegIptcRewriterremoveIPTC 方法执行相同的操作以删除 IPTC 元数据。您可以使用 CF 函数 ImageGetEXIFMetaData 和 ImageGetIPTCMetadata 验证是否已删除所有内容。

现在我不确定它是否真的会减小文件大小,让我知道:-)

关于coldfusion - 使用 CF8 cfimage 标签生成缩略图 - 图像元数据导致文件过大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5520444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com