Corrigir arquivo png feito pelo Linux para uso no Windows

0

Existe uma biblioteca particular de ícones que eu realmente gosto do DeviantArt.

Agora, baixei o pacote que contém os arquivos png (sei que os arquivos ico estão lá, mas quero os arquivos png ).

No entanto, sobre o meu computador com Windows 7, há cerca de 1/3 dos arquivos png corrompidos. Eu costumo usar o XnView para visualizar os arquivos e ele não exibe os arquivos "corruptos". Já experimentei outros editores e visualizadores e recebi o mesmo problema.

Agora, o pacote png foi originalmente projetado para o Linux ser um pacote de ícone do sistema operacional para todo o sistema, então eu acho que os arquivos png foram construídos no Linux.

Então, existe uma maneira que eu possa "consertar" os arquivos " png " corrompidos para o meu computador com Windows 7? Talvez quando os arquivos foram criados, havia algum pouco off-color ou algo assim?

Alguma pista?

[editar]

Eu tenho li neste tópico que a "corrupção" poderia acontecer durante o processo de extração. Eu fiz toda a extração com 7-zip. Foi um zip contendo um tar . Vou tentar outro extrator, mas acho que não fará diferença.

Acho que a resposta pode girar em torno da edição de um dos bits iniciais ou finais no arquivo binário, mas não tenho certeza.

[atualização]

Ok, eu consertei o link para o pacote de ícones ... (o outro estava bom) - mas esse novo link é para o pacote original do DeviantArt.

Estou fazendo desta maneira: eu extraio o conteúdo da pasta .zip e, em seguida, extrai o conteúdo da pasta .tar até que nada seja compactado.

Por meio de um exemplo, se você fizer o download desse conjunto, haverá um arquivo chamado add.png na pasta 32x32\actions . Outro é o 32x32\actions\bottom.png . Há muito em todas as pastas. Um exemplo de um bom seria o 32x32\actions\appointment.png que é perfeitamente legível.

    
por bgmCoder 09.11.2013 / 16:12

2 respostas

3

Parece que o problema é que o arquivo tar contém links simbólicos . Isso significa que os arquivos duplicados não são gravados duas vezes, mas sim vinculados a um arquivo existente. Isso pode ser feito, por exemplo, com o comando ln -s no Linux e, se você criar um arquivo tar no Linux, o link simbólico será armazenado no arquivo tar.

No entanto, 7-zip barfs em links simbólicos em um tar archive e, em vez de manipulá-lo de forma limpa, como fazer uma cópia idêntica do arquivo vinculado, ele grava o nome do arquivo vinculado como o conteúdo do arquivo. Nesse caso, o arquivo gnome-panel-launcher.png contém a imagem real.

Vocêrealmentenãotemmuitaescolha,excetoporrelatarqueissoéumbug(masjáexisteum grupo de existente casos em seu rastreador de erros e nenhum sinal de qualquer progresso) ou encontrar um arquivador que possa lidar melhor com a situação. Eu tentei WinRAR , que é o que eu uso normalmente, e poderia extrair o arquivo sem problema.

    
por 10.11.2013 / 19:20
1

Eu tentei extrair o arquivo Tar em 7-Zip . Não há realmente nenhum problema com o processo de extração. O problema é que os arquivos Tar podem ter links simbólicos em um sistema Linux, e esses links são extraídos como arquivos no Windows por 7-Zip .

Como você só precisa das imagens reais, é possível excluir com segurança esses arquivos de link simbólico que aparecem como arquivos PNG inválidos e usar apenas as imagens reais restantes. Os arquivos de links simbólicos são do tamanho de 8 a 32 bytes, noto, enquanto as imagens reais são muito maiores, com pelo menos mais de 320 bytes.

Mas se você quiser saber a que arquivo real cada link simbólico tem links, você pode abrir o arquivo de link no Notepad ou em um editor de texto (sim, mesmo que seja um arquivo .PNG) e você encontre o nome do arquivo atual. Por exemplo, o arquivo de link simbólico add.png quando aberto no bloco de notas revela que o arquivo real é list-add.png . Você pode descobrir que este arquivo existe na pasta e contém o ícone add .

Você pode renomear os arquivos de links simbólicos de .PNG para .TXT para facilitar as pesquisas. Mas eu simplesmente os apagaria, já que eu estaria apenas interessado em imagens reais, e não há necessidade de ter cópias da mesma imagem (mesmo que o Windows forneça um sistema de linkação simbólica ou difícil).

Observação: Durante o processo de extração, talvez você tenha perguntado se deseja substituir determinados arquivos. Responda Sim quando você sabe que o arquivo existente tem cerca de 12 bytes e o novo arquivo tem algo entre 500 e 1.000 bytes ou mais. O arquivo existente é um arquivo de link simbólico, enquanto o novo arquivo sobrescrito é a imagem real.

    
por 10.11.2013 / 19:48