我做十字绣设计,最近一直在使用 Affinity Photo/Designer。所以我可以弄清楚我需要多少每种颜色线程,我想计算每种颜色的每个像素的数量(在扁平的最终图片中)但我找不到任何方法,在 Affinity 或其他任何我有试过了,但我很乐意尝试任何不花钱的东西(或者我可能已经拥有的东西,所以不要推荐任何由 Adobe 制作的东西)。谁能帮我吗?
有没有办法计算图片中每种颜色的像素数?
您可以使用 GIMP 来实现,它是免费的、开源的,可在 Mac、Windows 和 Linux 上运行。
在 GIMP 中打开图像,使用File > Open
在主菜单中单击Windows > Dockable Dialogs > Histogram
选择“按颜色选择”工具Shift+ C,然后在“工具选项”中的“工具箱”下将“阈值”设置为 0
- 单击一种颜色以选择它,像素数将显示在直方图中。重复其他颜色
注意:如果您的图像非常小,您可能需要放大。使用+和-放大/缩小。移动鼠标时按住Space可以在图像周围平移。另请注意,上例中的灰白色棋盘格是为了显示透明背景。如果您的图像具有纯色背景,您将看不到这些。
使用 Gimp 大量借鉴 Billy Kerr 的答案,这就是您在 Affinity Photo 中实现相同目标的方法:
首先使用View > Studio > Histogram菜单选项确保直方图面板处于活动状态且可见。(您可能需要使用右上角的小汉堡菜单为面板设置“高级”选项,以查看与直方图相关的统计信息。)确保选中“选框”选项,以将范围限制为选定像素.
然后使用Select > Select Sampled Colour...选项。将显示一个小面板:
单击图像以选择要采样的颜色。有一个阈值滑块来确定每个像素必须匹配到多近才能被选中。调整滑块以包含/排除您需要的像素。然后单击应用。直方图和统计数据将更新以反映选择:
在我的示例中,您可以看到选择了 136 个像素。如果您在直方图的右上角看到一个小的警告三角形(如我的第一个示例所示),请单击它以强制完全刷新数据。
重复其他颜色。这有点令人厌烦,因为您每次都需要使用Select > Select Sampled Colour...菜单选项。
如果您安装了命令行工具imagemagick,您可以在 *nix 或 OSX 终端中使用以下命令:
convert <filename> txt:- | cut -d " " -f 4 | uniq -c
替换<filename>
为您的文件名。这将打印一个计数和十六进制颜色列表,例如:
10 #4A413F
14 #483E3C
这通过使用该convert
工具将文件转换为“txt”格式来工作,该格式由以下行组成:
9,0: (75,74,76) #4B4A4C srgb(75,74,76)
这是x,y坐标,然后是十进制RGB值,十六进制值,然后是像素的srgb值。显然,这种格式不是很有效:)。我们将其写入标准输出(txt:-
意思是“将 txt 格式写入标准输出”)。
然后,我们使用内置cut
命令抓取第四-f 4
列( ),用空格( )分隔-d " "
,这里是十六进制值(有趣的是,十进制 RGB 和十六进制值之间有两个空格,所以如果你想要十进制 RGB,使用-f 2
)。
最后,我们使用内置uniq
命令计算-c
唯一行数,并将其打印到标准输出(终端)。
我找不到在 Photoshop 中执行此操作的方法,但有一个解决方法可以使用 Illustrator 执行此操作:
- 在 Illustrator* 中复制粘贴您的图像;
- 使用具有图像精确分辨率的对象>创建对象马赛克**将其转换为单独的正方形;
- 使用选择工具[V]并双击对象进入结果组;
- 选择魔棒工具 [Y] 并双击该工具的图标以访问其设置;
- 勾选“填充颜色”,将其公差设置为 1 并取消勾选其他选项;
- 打开窗口>文档信息并打开其选项以勾选“对象”
- 使用魔棒单击彩色“像素”以选择所有像素,并在“文档信息”面板的顶部显示总数量。
* 我尝试放置一个透明的 .png,Ai 拒绝对其进行拼接,因此我的建议是复制粘贴。
**这个问题概述了这种技术。