gpt4 book ai didi

rebol - 如何从二进制文件(图像)中删除所有 "black pixels"?

转载 作者:行者123 更新时间:2023-12-01 10:51:14 24 4
gpt4 key购买 nike

我正在寻找性能最好的代码,它从二进制文件中删除所有黑色像素 = #{000000}。代码示例:

img: make image! [100x75 0.0.255]
loop 1000 [change at img random 99x74 0.0.0]
probe length? foo: copy img/rgb
probe delta-time [remove-each [r g b] foo [ all [zero? r zero? g zero? b] ]]
probe length? foo
foo: copy img/rgb
probe delta-time [trim/with foo #{000000}]
probe length? probe foo

Trim 执行得相当快,但没有按预期工作,因为它从二进制文件中删除了所有零字节 #{00}。

从二进制文件中删除所有“黑色像素”= 三个零字节 = #{000000} 的最快代码是什么?还有什么建议吗?可能使用解析性能更好?

最佳答案

使用 PARSE 并创建一个新的二进制系列应该是最快的方法:

probe length? foo: copy img/rgb
new: make binary! length? foo

probe delta-time [
parse foo [any [s: #{000000} | 3 skip (append/part new s 3)]]
]
probe length? new

这里它的执行速度几乎是使用 REMOVE-EACH 的两倍。

关于rebol - 如何从二进制文件(图像)中删除所有 "black pixels"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19805139/

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