jamiejackson
12/01/2022, 7:57 PMjamiejackson
12/01/2022, 7:59 PM<cfscript>
// 2x2 px webp
img = imageReadBase64('data:image/webp;base64,UklGRoIDAABXRUJQVlA4WAoAAAAMAAAAAQAAAQAAVlA4ICIAAABQAQCdASoCAAIAAgA0JQBOgCgAAP7o1xGE0jAYElaswgAARVhJRmgAAABNTQAqAAAACAAEAQYAAwAAAAEAAgAAARIAAwAAAAEAAQAAASgAAwAAAAEAAQAAh2kABAAAAAEAAAA+AAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAACoAMABAAAAAEAAAACAAAAAFhNUCDKAgAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8dGlmZjpDb21wcmVzc2lvbj4xPC90aWZmOkNvbXByZXNzaW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPjI8L3RpZmY6UGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4Kq');
img.resize(1, 1);
img.write('1x1px.webp');
</cfscript>zackster
12/01/2022, 9:29 PMzackster
12/01/2022, 9:30 PMzackster
12/01/2022, 9:30 PMzackster
12/01/2022, 9:31 PMzackster
12/01/2022, 9:31 PMzackster
12/01/2022, 9:34 PMjamiejackson
12/01/2022, 9:39 PMzackster
12/01/2022, 10:25 PMjamiejackson
12/01/2022, 10:26 PMjamiejackson
12/01/2022, 10:31 PM<cfscript>
img = imageReadBase64('data:image/webp;base64,UklGRoIDAABXRUJQVlA4WAoAAAAMAAAAAQAAAQAAVlA4ICIAAABQAQCdASoCAAIAAgA0JQBOgCgAAP7o1xGE0jAYElaswgAARVhJRmgAAABNTQAqAAAACAAEAQYAAwAAAAEAAgAAARIAAwAAAAEAAQAAASgAAwAAAAEAAQAAh2kABAAAAAEAAAA+AAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAACoAMABAAAAAEAAAACAAAAAFhNUCDKAgAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8dGlmZjpDb21wcmVzc2lvbj4xPC90aWZmOkNvbXByZXNzaW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPjI8L3RpZmY6UGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4Kq');
// img = imageRead('1.sm.webp');
img.write('1x1px.webp');
</cfscript>jamiejackson
12/01/2022, 10:31 PMzackster
12/01/2022, 10:33 PMjamiejackson
12/01/2022, 10:53 PMjamiejackson
12/01/2022, 10:59 PMjamiejackson
12/01/2022, 11:00 PMjamiejackson
12/01/2022, 11:00 PMjamiejackson
12/01/2022, 11:01 PMCharles Robertson
12/01/2022, 11:22 PMjamiejackson
12/01/2022, 11:46 PMjamiejackson
12/01/2022, 11:53 PMjamiejackson
12/02/2022, 12:21 AMCharles Robertson
12/02/2022, 12:28 AMApplication.cfc, to convert the extension into an updateable repo:
application.cfc
component {
this.functionpaths = [path_to_extensions_functions_directory];
this.customtagpaths = [path_to_extension_tags_directory;
this.javasettings.bundle = [path_to_extension_jars_directory];
}
We are not so sure about the this.javasettings.bundle setting, but the other two are certainly required.Charles Robertson
12/02/2022, 12:31 AMhmm, time for me to dig into your thread, @Charles RobertsonI hope you have plenty of time, on your hands. There are 150 or so replies! 😂 I went down quite a few rabbit holes! Thankfully @zackster had the patience to stay with me 👏🏻
jamiejackson
12/02/2022, 1:17 AMjamiejackson
12/02/2022, 1:20 AMzackster
12/03/2022, 4:13 PMzackster
12/03/2022, 4:14 PMzackster
12/03/2022, 4:16 PMjamiejackson
12/05/2022, 10:30 PMWebp is read only unless you have a commercial libraryThanks, @zackster, that's a huge detail that I missed about TwelveMonkeys. From what I can tell, the following libs support writes: • jdeli ($ option, which has a free trial) https://www.idrsolutions.com/jdeli/ • scrimage (FOSS) https://sksamuel.github.io/scrimage/ • webp-imageio (FOSS, but might be abandoned) https://github.com/sejda-pdf/webp-imageio How would I try jdeli, do you know? I tried adding
jdeli-imageio-trial.jar to the image extension's source/java/libs directory and building/installing the extension. I then added `this.image.coder="JDeli";`to the Application.cfc in my test app, but it didn't seem to make a difference.zackster
12/06/2022, 9:10 AMjamiejackson
12/06/2022, 3:24 PMzackster
12/06/2022, 3:25 PMzackster
12/06/2022, 3:25 PMjamiejackson
12/07/2022, 3:16 PMzackster
12/07/2022, 4:08 PMjamiejackson
12/07/2022, 6:53 PM