使用 Scratch.mit 将 PNG 的 Base64 转换为每个像素的 RGB 值?
Posted
技术标签:
【中文标题】使用 Scratch.mit 将 PNG 的 Base64 转换为每个像素的 RGB 值?【英文标题】:Convert Base64 of a PNG in to RGB values of each individual Pixel using Scratch.mit? 【发布时间】:2022-01-09 02:25:54 【问题描述】:我要转换这个字符串:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ4AAAC7CAMAAACjH4DlAAAAbFBMVEX///8AAADo6Oj09PQTExNUVFT4+PgEBAQiIiKZmZlbW1v8/PzPz89NTU2NjY2Ghoazs7N3d3fDw8Pf398yMjI+Pj6jo6OAgIBJSUmwsLDu7u6SkpKbm5u+vr7GxsaIiIhtbW3V1dUODg5iYmJbCxS8AAAD0ElEQVR4nO3d61LaQABAYSFcqhFBbRsxXO37v2NnOlX2dMx2EyIEcs6/LVlJvtKZbojJzY2ZtVI2vKqyIzluB6MranB7JEc5uKrKVjmm1aPpNHHDprXy3nJgJAdGcmAkB0ZyYCQHRnJgJAdGcmB0LMdtG0fSneqvWV7X66dD89n4iprNg0Nbr18TOJ7A+Vj/A9XlHnFwTwkz5EByIDmQHEgOJAeSA8mB5EByIDnQpj8cm0+3ycqHoKKYHyoW2HK5DTbcDlN3Yo1p+/ClfPVwfFssTYd4tyX2ZIGDK8IfUr5/fzsE2UvkuMbY8j6Vo8A07GD2bdBCz+GPvMdL48h+vWDL97/d4Sj801lePf+uGccc0/CBy76nHnLsJFeE4656t/JZuOFIDjnkkEMOOeSQQw45anatHF+9Zukgx7aaI18vF1Vx5fercrvFcnJRHJFPR6wFpm1Tp/WDY546TQ4kB5IDyYHkQHIgOZAcSA7UeY7ImiXWhXFsJllSOddiF8Ax/eg/HNNgyxqF02pwhNPqLOGCaXGOYMOjPx0Nu4BPRyOOhr81IIcccsghhxwfyYHkQHIgOVBf/pPeaAn3LbXRSZdw+7fwrXfVG7a8hNvkk6ROfPrnBm8eOZp+nA1LTg4kB5IDyYHkQHIgOZAcSA4kB7pojuQlXHItr2hrfGVduaLNf95Wtdph2niFF8NBiXv2vpbhaxH8lle0F3ERduQXRzv4j8XfWJBDDjnkkEMOOeSQQ47PODC/9ze7ycLl4aoY3x0arzB/gXVkyr1x/7QJ15gl9j2yov13gVs9Sl/RrnBwBQ7880fZ9P5GWczbqCE5kBxIDiQHkgPJgeRAciA5kBxojRm7PPEizViJ159+ffkOB7dO2PfsPmhfjIJLeN+W/5/+WeXo3+uQz9So2IdHV/9xrHyY0c9mHDz9c87afQDrOTk68agrOeSQQw455JAjMk0OjOTAqBMcvBXSOWv3Aazlc9ikelqGDR8rdu70HbtmycNbPE2Sv7Lm9dNF4i2kvr6GZygqSr6gYYkN27+6vhs15ChOt4cnTQ4kB5IDyYHkQHIgOZAcSA6UzLHoO8cEz1nZzsaHXhqeF+h8EY5nvPTjXHt40uRAciA5kBxIDiQHkgPJgeRAciA5EDn24Uv87dPv59rDk0aO3Tzocf4QdK1rWBa79XPkC+xrLXJj8EH9K5ovPjmQHEgOJAeSA8mB5EByIDmQHCi2Zuk9x+oprN0rWC+iyPmOPtbwNmrXmhxIDiQHkgPJgeRAciA5kBxIDvRrMDokx+swrIdrWDP722+4TLrS0rwNTgAAAABJRU5ErkJggg==
输入到每个像素 RGB 值。这意味着我需要一个转换器,但我不知道如何转换东西。我需要解释如何获得 Base64 字符串的 RGB。或者你可以在网站 scratch.mit.edu 上给我一个项目,这个项目已经实现了。
最后我的目标是再次将整个 Base64 代码重新创建到图像中,但我想为它制作自己的引擎/转换器。
【问题讨论】:
欢迎来到 Stack Overflow。请阅读asking questions。 “我想为它制作自己的引擎/转换器。”为什么?作为学术练习?因为你不喜欢现有的转换工具?因为您的印象是,在 Scratch 中这将比在您可能(还)不熟悉的库更丰富的编程语言中更容易? Scratch outside 有很多标准工具可以帮助您将该字符串转换为常规 PNG 文件(然后您可以将其作为服装上传到您的 Scratch 项目中)或 RGB 值列表(您可以然后可以导入到 Scratch 中的列表中,使您的代码可以访问单个像素)。 它在语音气泡内说“嗨”。您可以使用 ImageMagick 单线轻松找到它,但您似乎想以艰难的方式做到这一点。 【参考方案1】:因此,当您要扫描颜色时,您需要找到颜色值的颜色代码,这通常表示为所示的等式: (R65536) + (G256) + (B) 您还可以发现,通过将其放入笔设置,然后更改值,颜色会发生变化,但 Scratch 将等式的结果理解为数字,而不是 RGB 值 这也意味着没有办法将 Base 24 文件转换为 RGB 值,而是将图像加载到服装中,创建一个新精灵,然后将像素大小(2x2 对 hitboxing 合理)命名为扫描仪,然后您需要找到一种使用“触摸色块”扫描整个可识别颜色列表的方法,这意味着您将检查像素是什么颜色,您可以将其保存到列表中,然后您可以找到一种简单的方法来重新创建图像。 然后你还需要找到一种方法来移动到下一个像素。 这就是您可以从头开始拍照的方法,但您需要静止几个小时,因为该程序试图在单帧(1 秒 / 30)内扫描大约 6000 种不同的组合。
【讨论】:
以上是关于使用 Scratch.mit 将 PNG 的 Base64 转换为每个像素的 RGB 值?的主要内容,如果未能解决你的问题,请参考以下文章