Risposte:
Mac OS X 10.5+ memorizza le immagini degli account degli utenti all'interno del Servizio directory, ad eccezione di un account che non ha modificato le immagini degli utenti dalla prima creazione. Quando viene creato per la prima volta, un account contiene un attributo "Immagine" nel record utente che rappresenta un percorso per l'immagine in questione. Questo può essere letto usando il dscl
comando ( dscl . -read /Users/${USER} Picture
).
Se un utente ha modificato la propria immagine utente in qualsiasi momento, la foto dell'account (ovvero la versione ritagliata, se del caso) viene memorizzata nell'attributo "JPEGPhoto" del proprio record utente.
Puoi trovare i file originali /Library/User Pictures
se stai cercando un'immagine fornita da Apple, mentre i tuoi file originali personali dovrebbero essere trovati su ~/Library/Images/iChat Recent Pictures/
. Se i file vengono mai rimossi dalla iChat Recent Pictures
cartella, ciò non influirà sull'immagine del tuo account utente.
Se desideri estrarre una versione dell'immagine del tuo account, puoi farlo eseguendo il comando seguente
dscl . -read /Users/${USER} JPEGPhoto | tail -1 |
xxd -r -p > ${HOME}/Desktop/accountImage.jpg`
La risoluzione può variare in base alle dimensioni originali della foto e alla versione del sistema operativo in uso quando viene salvata.
Se stai utilizzando Mac OS X 10.4, la mia memoria non mi riesce poiché non ricordo se l'immagine dell'utente è stata memorizzata in NetInfo o meno.
dscl . -read /Users/short_username JPEGPhoto | tail -1 | xxd -r -p > /PATH/TO/accountImage.jpg
: funziona come pubblicizzato , solo che ottieni una versione di 256x256 px dell'immagine del tuo account. :)
Ho avuto difficoltà a trovare la cache delle immagini dell'account su Mountain Lion 10.8.3. Non sono stati trovati in
~/Library/Caches/com.apple.iChat/Pictures
o
~/Library/Images/iChat Recent Pictures/
Presumibilmente questo è perché iChat è diventato Messaggi in Mountain Lion, così ho usato lo strumento da riga di comando fs_usage
per trovarli. Eseguendo il comando
sudo fs_usage -w | grep .tiff
Quindi, facendo clic e impostando una nuova immagine dell'account, è possibile vedere il percorso del file che viene scritto sul disco quando si cambiano le immagini dell'account.
Si scopre che in Mountain Lion 10.8.3 le recenti immagini dell'account sono state spostate in:
~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/
~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/
ha lavorato per Mavericks
Ho trovato le immagini predefinite in /Library/User Pictures
Ci sono sei sottodirectory in questa directory. Puoi inserire il tuo set di immagini come parte della raccolta predefinita.
Crea una nuova sottodirectory vuota con il tuo nome e poiché questa è una directory esterna al tuo account e accessibile a qualsiasi utente, dovrai inserire la password dell'amministratore.
Quindi copia e incolla le tue foto in questa nuova sottodirectory, inserendo nuovamente la tua password amministratore.
Le tue foto ora dovrebbero apparire nella raccolta predefinita. Quindi dovrai accedere all'app dei contatti e cambiare la tua foto. Quindi vai su Utenti e gruppi nelle preferenze di sistema e modifica le foto. Per cambiare le foto selezionare modifica e quindi predefinito e quindi scorrere verso il basso.
Su Mac OS X 10.8.2 Mountain Lion, esistono come file che sono un mix di jpeg e tiff sul mio Mac. Pertanto, possono essere copiati in un'altra posizione.
Il set completo di foto degli utenti si trova in due posizioni diverse. Tuttavia, la foto dell'utente in questione non è necessariamente correlata alla rispettiva cartella dell'utente. Quindi è un po 'eccentrico.
Guarda: Macintosh HD / Utenti / utente0 / Libreria / Immagini / Immagini recenti di iChat / Per ' utente0 ' Mi riferisco al nome del primo utente definito sul sistema (vedi contesto seguente). In questa posizione ci sono 3 foto utente, per 3 dei miei 4 utenti. 3 jpeg, tutti di buona qualità. Curiosamente, è per tutti gli utenti tranne user0. I jpeg sono chiamati con il nome esatto come segue: "Recente 1.jpg", "Recente 2.jpg" e "Recente 3.jpg"
Per l'utente0, questa foto è in: Macintosh HD / Libreria / Cache / È una qualità rigida e scadente. Il tiff si chiama esattamente "com.apple.user501picturecache.tiff"
È importante sottolineare che qui è il contesto di sistema sopra: - Un Apple iMac 20 "all'inizio del 2009 che originariamente eseguiva Mac OS X 10.5 Leopard - Il primo utente definito era user0. Né il nome, né la foto, sono stati cambiati. - Tutti gli altri utenti seguiti poco dopo. Ancora una volta, né i nomi né le foto sono stati cambiati - È stato aggiornato con ogni nuovo Mac OS X quando rilasciato - Attualmente in esecuzione Mac OS X 10.8.2 Mountain Lion.
Nota: quando ho effettuato l'aggiornamento a Lion, ricordo che la foto dell'utente0 non era così bella al momento dell'accesso. Sembrava di qualità scadente. Quindi è successo qualcosa lì. Mi aspetto che Lion abbia riorganizzato dove erano le foto e fatto qualcosa per le foto - non ne ho la prova, è solo un sospetto.
Questo è il modo di trovarlo su OS X 10.8.3:
~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/
Running Snow Leopard 10.6.8
Ho trovato la mia foto catturata per l'accesso dell'utente nella seguente posizione. Sono stati trovati sia l'originale che il ritaglio~/Library/Caches/com.apple.iChat/Pictures
Se si fa clic sull'icona nella pagina delle preferenze "Account", viene visualizzato un menu di scelta rapida che offre "Modifica immagine ..." come opzione più in alto. Questo apre una finestra di dialogo che - almeno nel mio caso - mostra una versione più grande della mia icona utente. Immagino per lo scopo specifico di creare un'icona di messaggistica sarebbe possibile semplicemente catturare questa immagine.
Certo, senza avere il background tecnico per rispondere alla domanda reale, non sono davvero sicuro se le icone dell'utente reale siano memorizzate in un file normale. Se questo file si trovasse all'interno del tuo account utente (cioè ˜ / Libreria), la pagina delle preferenze dovrebbe eseguire una scansione approfondita del tuo account per visualizzare l'icona se un altro utente apre semplicemente la pagina delle preferenze "Account".
Se, OTOH, il file fosse archiviato da qualche parte in / Library, probabilmente sarebbe difficile impostare l'icona singolarmente per ogni utente che non ha i diritti di amministratore. Qualcun altro ha fatto luce su questo, per favore.
dscl
- file .plist archiviati in /var/db/dslocal
)
Sulla base di tutte le risposte precedenti ecco la mia:
dscl . -read ~$USER JPEGPhoto | xxd -p -r > $USER.jpg
Anche qui c'è qualcosa per lo più originale che ho trovato:
sudo plutil -convert xml1 -o - /var/db/dslocal/nodes/Default/users/$USER.plist |
vim '+/>j/+3,/>j//<\/d/-1j | .!base64 -D > $USER.jpg' '+q!' -
Anche se è molto più complicato può essere utile, perché plutil
è disponibile anche su altre piattaforme. Converte il plist binario con le informazioni dell'utente in xml, quindi utilizza vim per selezionare la parte con l'immagine e infine decodifica da base64 in jpg.