Mac在哪里存储帐户图片?


87

我拍了一张照片,将其添加到Mac上的帐户中。

现在,我想在Messenger上使用它,但找不到。在帐户配置上,它太小。我需要找到原件。

Mac上的配件图片存储在哪里?

Answers:


105

Mac OS X 10.5+将用户的帐户图片存储在目录服务中,但从首次创建时起并未修改其用户图片的帐户除外。首次创建帐户时,帐户在其用户记录中包含“图片”属性,该属性是指向相关图片的路径。可以使用dscl命令(dscl . -read /Users/${USER} Picture)读取。

如果用户在任何时间修改了用户图片,则帐户图片(如果适用,也称为裁剪版本)存储在用户记录的'JPEGPhoto'属性中。

/Library/User Pictures如果您要查找Apple提供的图片,可以在找到原始文件,而在可以找到您的个人原始文件~/Library/Images/iChat Recent Pictures/。如果从iChat Recent Pictures文件夹中删除了文件,则不会影响用户帐户的图像。

如果要提取帐户图片的版本,可以通过运行以下命令来完成

dscl . -read /Users/${USER} JPEGPhoto | tail -1 |
    xxd -r -p > ${HOME}/Desktop/accountImage.jpg`

分辨率可能会因照片的原始大小以及保存照片时使用的操作系统版本而异。

如果您运行的是Mac OS X 10.4,则我的内存出现故障,因为我不记得用户图片是否存储在NetInfo中。


奇怪,我的自定义用户图片不在〜/ Library / Images / iChat最近的图片中。
Uwe Honekamp,09年

@Uwe Honekamp-如果清除了该文件夹,则无济于事,因为实际图像存储在用户记录的JPEGPhoto属性中。
Chealion

1
我使用了以下命令:-read / Users / short_username JPEGPhoto | 尾巴-1 | xxd -r -p> /PATH/TO/accountImage.jpg Ty Chealion
Zote

11
只需直接进入dscl . -read /Users/short_username JPEGPhoto | tail -1 | xxd -r -p > /PATH/TO/accountImage.jpg- 如广告所示,即可获得256x256 px版本的帐户图片。:)
Marius Butuc 2012年

1
@MariusButuc:我的家用计算机为我提供了一张非常旧的图片的96x96像素版本,但是在我的工作计算机上,它为我提供了苹果默认图片之一的512x512像素版本。我不确定什么以及在哪里决定实际保存什么大小。
Chealion

25

我很难在Mountain Lion 10.8.3上找到帐户图片缓存。在以下位置找不到它们

~/Library/Caches/com.apple.iChat/Pictures

要么

~/Library/Images/iChat Recent Pictures/

大概是因为iChat在Mountain Lion中成为了消息,所以我使用了命令行工具fs_usage来查找它们。通过运行命令

sudo fs_usage -w | grep .tiff

然后单击并设置新的帐户图片,您可以看到更改帐户图片时写入磁盘的文件的路径。

原来,在山狮10.8.3中,最近的帐户图片已移至:

   ~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/

2
~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/为小牛队
效力

还有优胜美地。关于此解决方案的好处是,您只需要访问文件系统,而不需要实时目录服务。
Poulsbo 2015年

对于最新的OSX版本,这似乎是正确的答案
ForeverWintr 2015年

确认它也适用于El Capitan。
Lloeki '16

在OS X Yosemite上得到确认
Daniel Griscom

11

我在找到默认图片 /Library/User Pictures

此目录下有六个子目录。您可以将自己的图片集作为默认图片集的一部分。

用您的名字创建一个新的空子目录,由于这是您帐户之外的目录,任何用户都可以访问,因此您将必须输入管理员密码。

然后将您的图片复制并粘贴到这个新的子目录中,再次输入您的管理员密码。

现在,您自己的照片应显示在默认集合中。然后,您将必须进入通讯录应用程序并更改照片。然后进入“系统偏好设置”下的“用户和组”并更改照片。要更改照片,请选择“编辑”,然后选择“默认”,然后向下滚动。


为我工作。为什么会这样呢?
TJ Biddle

对我来说,关键是杀死“设置”应用程序,然后将照片添加到/ Library / User Pictures
Sterling Bourne,

4

在Mac OS X 10.8.2 Mountain Lion上,它们作为文件存在,在我的Mac上是jpeg和tiff的混合体。因此,可以将它们复制到另一个位置。

完整的用户照片集位于两个不同的位置。但是,所讨论的用户照片不一定与相应的用户文件夹相关。因此,这有点古怪。

看一下:Macintosh HD /用户/用户0 /库/图像/ iChat最近图片/通过“用户0 ”,我指的是系统上第一个定义的用户的名称(请参阅以下上下文)。这个位置有3张用户照片,占我4位用户中3张的照片。3 jpeg,质量都很好。有趣的是,它适用于 user0 之外的所有用户。jpeg的确切名称如下:'Recent 1.jpg','Recent 2.jpg'和'Recent 3.jpg'

对于user0,此照片位于:Macintosh HD /库/缓存/这太差了,质量很差。该tiff确切地称为'com.apple.user501picturecache.tiff'

重要的是,这是上面的系统上下文:-2009年初运行Mac OS X 10.5 Leopard的Apple iMac 20“-第一个定义的用户是user0。名称或照片也没有更改。-所有其他用户紧随其后;名称,照片也没有更改-发布的每个新Mac OS X都对其进行了更新-当前正在运行Mac OS X 10.8.2 Mountain Lion。

注意: 当我更新为Lion时,我记得user0照片在登录时看起来不太好。看起来质量较差。所以那里发生了什么事。我希望Lion重新排列照片的位置并对照片做些什么-我没有证据,这只是预感。


3

这是在OS X 10.8.3上找到它的方法:

~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/


我的10.8.3上没有这样的目录
2013年

@Mark有趣的...按照给定的路径,我确实在我的10.8.3
Ruskes

我在没有相机的Mac Mini上,所以照片是从文件中复制的。我在/Library/Caches/com.apple.user501pictureCache.tiff中找到了一个副本
user151019 2013年

1
@Mark –是的,我认为该文件夹仅用于相机拍摄的图像。
Wolfango

1

奔跑的雪豹10.6.8

我已经在以下位置找到了捕获的图片供用户登录。原始和裁剪的都在~/Library/Caches/com.apple.iChat/Pictures


1

看一看~/Library/Images/iChat/Recent Pictures


0

如果单击“帐户”首选项页面中的图标,将显示一个上下文菜单,其中提供“编辑图片...”作为最上方的选项。这将打开一个对话框-至少在我看来,该对话框显示用户图标的较大版本。我想出于创建Messenger图标的特定目的,简单地对此图片进行屏幕截图是可行的。

诚然,在没有技术背景回答实际问题的情况下,我真的不确定实际用户图标是否存储在常规文件中。如果此文件位于您的用户帐户(即〜/ Library)内,则如果另一个用户仅打开“帐户”偏好页面,则偏好页面将不得不深入您的账户以显示图标。

如果OTOH,文件存储在/ Library中的某个位置,则可能很难为没有管理员权限的每个用户分别设置图标。请其他人对此有所说明。


1
用户详细信息存储在目录服务(入店的dscl-在存储文件的.plist /var/db/dslocal
Chealion

-1

我的所有以前的答案都建立在这里:

dscl . -read ~$USER JPEGPhoto | xxd -p -r > $USER.jpg

这也是我发现的大部分原始的东西:

sudo plutil -convert xml1 -o - /var/db/dslocal/nodes/Default/users/$USER.plist |
    vim '+/>j/+3,/>j//<\/d/-1j | .!base64 -D > $USER.jpg' '+q!' -

即使它非常复杂,它也很有用,因为plutil在其他平台上也可以使用。它将带有用户信息的二进制plist转换为xml,然后使用vim选择带有图片的部分,最后将其从base64解码为jpg。

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.