回答:
Mac OS X 10.5+は、最初に作成されたときからユーザーの写真を変更していないアカウントを除き、ユーザーのアカウントの写真をディレクトリサービスに保存します。最初に作成されたアカウントのユーザーレコードには、問題の画像へのパスである「Picture」属性が含まれています。これは、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に保存されているかどうかを思い出せないので、私のメモリが故障しています。
dscl . -read /Users/short_username JPEGPhoto | tail -1 | xxd -r -p > /PATH/TO/accountImage.jpg
- 作品宣伝として、あなたが得るだけのことを256×256ピクセルのアカウントの画像のバージョンを。:)
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/
~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/
マーベリックスで働いていた
デフォルトの写真を見つけました /Library/User Pictures
このディレクトリの下には6つのサブディレクトリがあります。デフォルトのコレクションの一部として、独自の画像セットを配置できます。
自分の名前で新しい空のサブディレクトリを作成します。これはアカウント外のディレクトリであり、すべてのユーザーがアクセスできるため、管理者パスワードを入力する必要があります。
次に、写真をコピーしてこの新しいサブディレクトリに貼り付け、再び管理者パスワードを入力します。
自分の写真がデフォルトのコレクションに表示されます。次に、連絡先アプリに移動して写真を変更する必要があります。次に、システム環境設定の下のユーザーとグループに移動し、写真を変更します。写真を変更するには、編集を選択してからデフォルトを選択し、下にスクロールします。
Mac OS X 10.8.2 Mountain Lionでは、これらは私のMacのJPEGとTIFFが混在したファイルとして存在します。したがって、それらを別の場所にコピーできます。
ユーザーの写真の完全なセットは、2つの異なる場所にあります。ただし、問題のユーザーの写真は、それぞれのユーザーフォルダーと必ずしも相関するわけではありません。ちょっと風変わりです。
見てください:Macintosh HD / Users / user0 / Library / Images / iChat Recent Pictures /「user0」によって、システムで最初に定義されたユーザーの名前を参照します(以下のコンテキストを参照)。この場所には4人のユーザーのうち3人のユーザーの写真が3枚あります。3 jpeg、すべて良質。興味深いことに、user0 を除くすべてのユーザー向けです。jpegは、「Recent 1.jpg」、「Recent 2.jpg」、および「Recent 3.jpg」のように正確な名前と呼ばれます。
user0の場合、この写真はMacintosh HD / Library / Caches /にあります。これは固くて質の悪いものです。TIFFは正確に「com.apple.user501picturecache.tiff」と呼ばれます
重要なのは、上記のシステムコンテキストです。-最初にMac OS X 10.5 Leopardを実行していたApple iMac 20 "2009年初頭-最初に定義したユーザーはuser0です。名前も写真も変更されていません。すぐに、名前も写真も変更されていません-リリース時に新しいMac OS Xごとに更新されています-現在Mac OS X 10.8.2 Mountain Lionを実行しています。
注: Lionに更新したとき、user0の写真はログイン時にあまり良く見えなかったことを思い出します。質が悪いように見えました。そこで何かが起こった。私は、Lionが写真のある場所を再配置し、写真に何かをしたことを期待しています-これの証拠はありません、それは単なる予感です。
それがOS X 10.8.3でそれを見つける方法です:
~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/
「アカウント」設定ページのアイコンをクリックすると、一番上のオプションとして「画像の編集...」を提供するコンテキストメニューが表示されます。これにより、少なくとも私の場合はユーザーアイコンの大きなバージョンを表示するダイアログが開きます。メッセンジャーアイコンを作成する特定の目的のために、この写真を単純にスクリーンショットで撮影することは可能だと思います。
確かに、実際の質問に答える技術的な背景がなければ、実際のユーザーアイコンが通常のファイルに保存されているかどうかはわかりません。このファイルがユーザーアカウント(つまり〜/ Library)内にある場合、別のユーザーが単に「アカウント」設定ページを開くと、アイコンを表示するために設定ページをアカウント内で深くクロールする必要があります。
OTOH、ファイルが/ Libraryのどこかに保存されている場合、管理者権限のないユーザーごとにアイコンを個別に設定することはおそらく難しいでしょう。誰か他の人がこれに光を当ててください。
dscl
-に格納されているの.plistファイル/var/db/dslocal
)
ここで以前のすべての答えに基づいて構築するのは私のものです:
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にデコードします。