获取Mac上PNG的像素尺寸?


20

.PNG我的Mac上有一个随机文件。实际上,我大约有一百个。获取像素尺寸的最简单方法是什么?(即100像素宽,50像素高或其他大小)。


当您查看文件属性时,这不只是显示吗?
beatgammit

1
我右键单击,然后单击“获取信息”,但没有看到它。
William Jockusch 2011年

Answers:


35

在终端中,可以使用以下命令:

$ sips -g pixelWidth Pictures/238337225.png 
/Users/danielbeck/Pictures/238337225.png
  pixelWidth: 1140
$ sips -g pixelHeight Pictures/238337225.png 
/Users/danielbeck/Pictures/238337225.png
  pixelHeight: 900

要仅提取值,请使用例如

$ sips -g pixelHeight Pictures/238337225.png | tail -n1 | cut -d" " -f4
900

要将其嵌入到AppleScript中:

set h to do shell script "sips -g pixelHeight /Users/danielbeck/Pictures/238337225.png | tail -n1 | cut -d' ' -f4"
set w to do shell script "sips -g pixelWidth /Users/danielbeck/Pictures/238337225.png | tail -n1 | cut -d' ' -f4"
display alert "Height: " & (h as text) & "
Width: " & (w as text)

结果:

在此处输入图片说明


或者,您可以阅读Spotlight元数据:

mdls Pictures/238337225.png | grep kMDItemPixel
kMDItemPixelCount              = 1026000
kMDItemPixelHeight             = 900
kMDItemPixelWidth              = 1140

要获取目录中所有文件的名称和尺寸,请执行以下操作:

$ mdls Pictures/* | grep "\(kMDItemDisplayName\|mMDItemPixel\)"
[...]
kMDItemDisplayName             = "url.png"
kMDItemPixelCount              = 16384
kMDItemPixelHeight             = 128
kMDItemPixelWidth              = 128
[...]

或者,使用findsips

find /Users/danielbeck/Pictures -type f -name "*.png" -exec sips -g pixelWidth {} \; -exec sips -g pixelHeight {} \;


更多灵活性,包装在shell脚本中:

$ cat dim.sh 
#!/usr/bin/env bash

filename=$1

if [ ! -f "$filename" ] ; then
    echo "$filename not found!";
    exit 1
fi

h=$( mdls "$filename" | grep kMDItemPixelHeight | tail -n1 | cut -d= -f2 )
w=$( mdls "$filename" | grep kMDItemPixelWidth | tail -n1 | cut -d= -f2 )

osascript -e "tell application \"Finder\" to {activate, display alert \"$filename\\nWidth:$w\\nHeight:$h\"}"

之后的结果chmod +x dim/sh

$ ./dim.sh Pictures/flying_cars.png

在此处输入图片说明


您可以轻松扩展脚本以一次显示多个文件的尺寸,例如某个目录中的所有png文件。输出作为Finder对话框,因此您可以将其嵌入到Automator服务中:

打开Automator并选择创建一个服务,以接收图像文件作为任何应用程序中的输入。

添加将输入作为参数接收的Run Shell脚本操作,然后输入以下内容:

dlg=
for f in "$@"
do
    h=$( mdls "$f" | grep kMDItemPixelHeight | tail -n1 | cut -d= -f2 )
    w=$( mdls "$f" | grep kMDItemPixelWidth | tail -n1 | cut -d= -f2 )
    dlg="$dlg$f\nW:$w H:$h\n"
done
osascript -e "tell application \"Finder\" to {activate, display alert \"$dlg\"}"
exit 0

另存为“ 显示图像尺寸”。在Finder中选择一些图像文件,然后选择Finder»服务»显示图像尺寸,Right-click在其中一个文件上选择[服务»]显示图像尺寸

在此处输入图片说明

在此处输入图片说明


老歌,但仍然是好东西!
芒果

8

在“查找器”窗口中找到文件,然后执行以下任一操作:

  • 突出显示文件,然后按⌘ Cmd+ ⌥ Option+ I

  • 按住Control键并单击文件并按住不放⌥ Option,即可选择“显示检查器”。

这将打开一个类似于“获取信息”窗口的检查器,但是每次选择文件时都会更新。

现在,在检查器上展开“更多信息”部分。您将能够查看PNG的尺寸和颜色深度以及其他数据。选择一个新文件以在检查器中查看其尺寸。

检查器窗口,在“查找器”窗口中显示突出显示的文件


2
奇怪的是,当我打开该窗口时,在“更多信息”下看到的是Title,Headline和Last Opened。。。但没有尺寸,颜色空间,颜色配置文件或Alpha通道。我的操作系统是10.6.7,而Finder是10.6.8版;可能是问题所在吗?
William Jockusch 2011年

2
此功能取决于Spotlight来索引图像的位置。图片是否在未编入索引的位置?
斯蒂芬·詹宁斯

4

这是一个古老的问题,但是对于当前的读者来说,现在有一个随时可用的解决方案。在优胜美地,您可以在Finder中打开“显示预览列”。Finder>视图>显示视图选项

这是屏幕截图。

屏幕截图


可悲的是,该问题在2011年发布,优胜美地在2014
Francisco Tapia

1
是的,当我在Google上寻找该问题的答案时,它是排名第一的搜索结果,所以我认为其他人将从我的答案中受益
Sergi 2015年

2

最简单的方法;在Safari中打开图像。

选择所有图像。然后使用Ctrl+点击上下文菜单并选择打开方式> Safari

您也可以选择使用Safari菜单“ 窗口”>“合并所有Windows”将所有打开的Safari菜单合并到单独的选项卡中

Safari窗口的顶部显示图像尺寸: 在此处输入图片说明


我觉得这是唯一对我有用的选择,真是奇怪。为什么必须打开浏览器才能查看图片尺寸?!?这是荒唐的。尽管如此,还是谢谢您的回答
迈克尔

0

这是使用Finder在文件夹的列表视图中添加单独的“尺寸”和“分辨率”列的方法。

  • 打开您的图片文件夹。/用户/〜/图片
  • 在打开的图片文件夹中创建一个新文件夹。请勿将其从其他位置拖入。
  • 在此新文件夹的列表视图中,右键/选项单击列标题行。
  • 检查上下文菜单底部的两个可用选项:“尺寸”和“分辨率”。

现在不错的部分。

  • 将此新文件夹拖到桌面上(或任何地方)并打开。
  • 请注意,修改后的标题行保留标题“ Dimensions”和“ Resolution”。
  • 将图像文件添加到文件夹中,并在列表视图中一次读取所有图像文件的尺寸和分辨率信息,而使用各种信息面板方法一次一次读取一个。

有时未计算分辨率或无法使用分辨率,并且破折号会出现在列中。见附件。

自macOS Sierra 10.12.6起,此功能仍有效

屏幕截图:列表视图中的文件夹,其中包含“尺寸”和“分辨率”列。


-1

在预览中打开图像,然后转到工具>显示检查器(⌘S)。这将打开一个窗口,以像素为单位显示图像尺寸。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.