Respostas:
O Mac OS X 10.5+ armazena imagens da conta do usuário no Serviço de Diretório, com exceção de uma conta que não modificou a imagem do usuário desde a primeira criação. Quando criada, uma conta contém um atributo 'Imagem' no registro do usuário, que é um caminho para a imagem em questão. Isso pode ser lido usando o dscl
comando ( dscl . -read /Users/${USER} Picture
).
Se um usuário modificou a imagem do usuário a qualquer momento, a imagem da conta (também conhecida como versão cortada, se apropriado) é armazenada no atributo 'JPEGPhoto' do registro do usuário.
Os arquivos originais podem ser encontrados em /Library/User Pictures
se você estiver procurando uma imagem fornecida pela Apple, enquanto os arquivos originais pessoais devem ser encontrados em ~/Library/Images/iChat Recent Pictures/
. Se os arquivos forem removidos da iChat Recent Pictures
pasta, isso não afetará a imagem da sua conta de usuário.
Se você deseja extrair uma versão da imagem da sua conta, pode fazê-lo executando o seguinte comando
dscl . -read /Users/${USER} JPEGPhoto | tail -1 |
xxd -r -p > ${HOME}/Desktop/accountImage.jpg`
A resolução pode variar dependendo do tamanho original da foto e de qual versão do sistema operacional você está usando quando salva.
Se você estiver executando o Mac OS X 10.4, minha memória está com defeito, pois não me lembro se a imagem do usuário foi armazenada no NetInfo ou não.
dscl . -read /Users/short_username JPEGPhoto | tail -1 | xxd -r -p > /PATH/TO/accountImage.jpg
- funciona como anunciado , apenas para obter uma versão de 256 x 256 px da imagem da sua conta. :)
Eu estava tendo dificuldade em encontrar o cache de imagem da conta no Mountain Lion 10.8.3. Eles não foram encontrados em
~/Library/Caches/com.apple.iChat/Pictures
ou
~/Library/Images/iChat Recent Pictures/
Presumivelmente, isso ocorre porque o iChat se tornou Mensagens no Mountain Lion. Então, usei a ferramenta de linha de comando fs_usage
para encontrá-los. Executando o comando
sudo fs_usage -w | grep .tiff
E, ao clicar e definir uma nova imagem da conta, você pode ver o caminho para o arquivo gravado no disco ao alterar as imagens da conta.
Acontece que, no leão da montanha 10.8.3, as imagens recentes da conta foram movidas para:
~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/
~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/
trabalhou para Mavericks
Encontrei as imagens padrão em /Library/User Pictures
Existem seis subdiretórios nesse diretório. Você pode colocar seu próprio conjunto de fotos como parte da coleção padrão.
Crie um novo subdiretório vazio com o seu nome e, como esse é um diretório fora da sua conta e pode ser acessado por qualquer usuário, você deverá digitar sua senha de administrador.
Em seguida, copie e cole suas fotos neste novo subdiretório, digitando novamente sua senha de administrador.
Suas próprias fotos agora devem aparecer na coleção padrão. Então você terá que entrar no aplicativo de contatos e alterar sua foto. Em seguida, entre em Usuários e Grupos nas preferências do sistema e altere as fotos. Para alterar as fotos, selecione editar e, em seguida, padrão e role para baixo.
No Mac OS X 10.8.2 Mountain Lion, eles existem como arquivos que são uma mistura de jpegs e tiffs no meu Mac. Assim, eles podem ser copiados para outro local.
O conjunto completo de fotos do usuário está em dois locais diferentes. No entanto, a foto do usuário em questão não se correlaciona necessariamente com a respectiva pasta do usuário. Portanto, é um pouco peculiar.
Veja: Macintosh HD / Usuários / usuário0 / Biblioteca / Imagens / Imagens recentes do iChat / Por ' usuário0 ' Refiro-me ao nome do primeiro usuário definido no sistema (veja o contexto abaixo). Nesse local, há 3 fotos de usuários, para 3 dos meus 4 usuários. 3 jpegs, tudo de boa qualidade. Curiosamente, é para todos os usuários, exceto para o usuário0. Os jpegs são chamados de nomes exatos da seguinte maneira: '1.jpg recente', '2.jpg recente' e '3.jpg recente'
Para o usuário0, esta foto está em: Macintosh HD / Biblioteca / Caches / É uma qualidade tiff e ruim. O tiff é chamado exatamente 'com.apple.user501picturecache.tiff'
Importante, aqui está o contexto do sistema acima: - Um Apple iMac 20 "no início de 2009 que originalmente executava o Mac OS X 10.5 Leopard - O primeiro usuário definido foi user0. Nem o nome nem a foto foram alterados. - Todos os outros os usuários seguiram logo depois .. Novamente, nem os nomes nem as fotos foram alteradas - Ele foi atualizado a cada novo Mac OS X quando lançado - Atualmente executando o Mac OS X 10.8.2 Mountain Lion.
Nota: Quando atualizei para o Lion, lembro que a foto user0 não parecia tão boa no login. Parecia uma qualidade inferior. Então, algo aconteceu lá. Espero que o Lion reorganize onde as fotos estavam e faça algo com as fotos - não tenho prova disso, é apenas um palpite.
Essa é a maneira de encontrá-lo no OS X 10.8.3:
~/Library/Containers/com.apple.ImageKit.RecentPictureService/Data/Library/Images/Recent Pictures/
Executando o Snow Leopard 10.6.8
Encontrei minha foto capturada para login do usuário no seguinte local. Tanto o original quanto o recortado foram encontrados em~/Library/Caches/com.apple.iChat/Pictures
Se você clicar no ícone na página de preferências "Contas", será exibido um menu de contexto que oferece "Editar imagem ..." como a opção mais no topo. Isso abre uma caixa de diálogo que - pelo menos no meu caso - mostra uma versão maior do ícone do meu usuário. Eu acho que, para o propósito específico de criar um ícone do messenger, seria possível simplesmente capturar a imagem dessa imagem.
É certo que, sem ter o conhecimento técnico para responder à pergunta real, não tenho certeza se os ícones de usuário reais estão armazenados em um arquivo regular. Se esse arquivo estivesse localizado dentro da sua conta de usuário (por exemplo, ˜ / Biblioteca), a página de preferências teria que rastrear profundamente sua conta para exibir o ícone se outro usuário simplesmente abrir a página de preferências "Conta".
Se, OTOH, o arquivo fosse armazenado em algum lugar na / Library, provavelmente seria difícil definir o ícone individualmente para cada usuário que não possui direitos de administrador. Alguém mais esclareceu isso, por favor.
dscl
- arquivos .plist armazenados em /var/db/dslocal
)
Com base em todas as respostas anteriores aqui é minha:
dscl . -read ~$USER JPEGPhoto | xxd -p -r > $USER.jpg
Também aqui está algo principalmente original que eu encontrei:
sudo plutil -convert xml1 -o - /var/db/dslocal/nodes/Default/users/$USER.plist |
vim '+/>j/+3,/>j//<\/d/-1j | .!base64 -D > $USER.jpg' '+q!' -
Mesmo que seja muito mais complicado, pode ser útil, porque plutil
também está disponível em outras plataformas. Ele converte o plist binário com as informações do usuário em xml, depois usa o vim para selecionar a parte da imagem e finalmente decodifica-a de base64 em jpg.