La compression d'un fichier peut-elle le casser?

85

Je viens de demander à quelqu'un de m'envoyer un psdfichier compressé .

Ils ont décliné l' invitation, affirmant que la compression d'un fichier peut casser les polices .

J'ai supposé que la compression d'un fichier était parfaitement réversible, d'où son utilisation courante. Je pense que l'autre personne est incorrecte.

Existe-t-il une vérité sur la compression du contenu de ses fichiers?

alex
la source
51
Peut-être que l’autre personne a confondu la compression d’un fichier (sans perte) avec la compression jpeg (avec perte), ce qui peut rendre l’essai moche.
Matt H
Je sais que j'ai déjà eu des problèmes de compatibilité pour les fichiers zip, car le format de fichier est utilisé sur toutes les plates-formes ...
jokoon
1
J'ai certainement connu certains cas «pathologiques» dans lesquels Winrar et les installations intégrées de WinXP ont cassé des fichiers (des dizaines de milliers dans un seul fichier zip). C'était il y a 4 ou 5 ans et la seule solution que je pouvais trouver à l'époque était d'utiliser 7-zip. Autant que je m'en souvienne, même 7-Zip ne pouvait pas décompresser avec succès les fichiers créés par les autres routines, ce qui laisse supposer que la panne était due à la compression, pas à la décompression. Évidemment, j’ai quand même choisi d’utiliser 7-zip pour les deux côtés dans le système de production.
FumbleFingers
1
@jokoon: Je ne suis pas sûr qu'il soit valide de parler d'un format de fichier ... utilisé sur toutes les plateformes . Il existe de nombreux formats internes différents utilisés dans les fichiers zip, et il est toujours possible qu'une archive soit créée par une seule routine d'emballage en utilisant un format imparfaitement pris en charge par une autre routine que vous utilisez au moment de la décompression.
FumbleFingers
@Tâtonner; Néanmoins, tout archiveur décent devrait saisir le changement de hachage et signaler l'opération comme un échec - ne pas laisser un fichier endommagé traîner.
Phoshi

Réponses:

133

Non, compresser un fichier ne peut pas le casser. Si votre fichier zip n'est pas corrompu, il reproduira le fichier identique lorsqu'il sera décompressé.

Dans ce cas, la différence entre les polices installées sur les deux systèmes peut être source de problèmes, mais cela n’a aucun rapport avec le processus zip / unzip.

Mike Fitzpatrick
la source
4
C'est ce que je soupçonnais. Merci pour votre réponse.
Alex
34
En outre, certains formats zip prennent en charge la redondance, ce qui signifie que le stockage au format zip peut être plus sûr que le stockage du fichier brut.
BlueRaja - Danny Pflughoeft
Vous ne devriez pas dire non si vite, il y a beaucoup d'implémentations de fichiers compressés / décompressés, en comptant tous les systèmes d'exploitation existants et d'autres éléments permettant de créer des fichiers zip. Je ne serais pas surpris que certaines implémentations ne se soucient pas des autres .
jokoon
@ jokoon: alors ces fichiers seraient corrompus, ce qu'il exclut explicitement
mbx
3
-1 En théorie, cela est vrai, mais dans la pratique, le décompression des polices Mac sur un PC en tant que 0 octet pose problème. Cela est dû à la création d'une fourchette de ressources. Essayez vous-même et voyez.
Django Reinhardt
80

En règle générale , zip est sans perte (en supposant une implémentation sans bogue), mais il existe un scénario qui pourrait s'appliquer à la perte de données: les flux de données alternatifs NTFS. Cette fonctionnalité peu utilisée permet à un seul fichier d'avoir plusieurs ensembles de contenus indépendants . La plupart du code ne verra jamais que le flux sans nom , mais d'autres peuvent exister.

Alors; si un programme décide de stocker les données dans un flux de données alternatif NTFS, votre client zip ne verra pas cette partie (il doit le demander explicitement, et RAR est actuellement le seul à le faire ).

Mais soulignons que ceci est utilisé très rarement et pas normalement avec des choses comme le PSD. Je soupçonne que votre ami / associé a tout simplement tort.

Marc Gravell
la source
11
Wow, c'est une connaissance totalement nouvelle pour moi.
kizzx2
5
Nouveau pour moi et bizarre. Quand un fichier n'est-il pas un fichier? Quand son contenu mute à volonté. J'ai entendu parler de mauvais traitements, mais pas beaucoup.
msw
7
@msw - ils ne mutent pas à volonté; simplement - il peut y avoir plus d'un bloc de données associé à un seul enregistrement de fichier. Presque toujours, il y en a exactement un (il est très rarement utilisé), mais ...
Marc Gravell
4
Retourner à SO! Trop technique! (je plaisante bien sûr;)
Byron Whitlock
32

Dans certaines circonstances, une police Mac peut ne pas être identique si elle est compressée puis décompressée. Cela peut ne pas le casser, mais contrairement à certaines déclarations ci-dessus, le processus peut ne pas fournir un fichier identique.

Les circonstances sont discutées ici:

http://xahlee.org/UnixResource_dir/macosx.html

http://ask.metafilter.com/59789/How-to-email-my-font

Mais en bref:

  1. S'il s'agit de polices beaucoup plus anciennes contenant des ressources et que l'utilisateur dispose d'une version plus ancienne de Mac OS X, généralement 10.4 ou antérieure. Les polices héritées telles que celle-ci fonctionnent sur OS X bien qu'elles aient été conçues à l'origine pour OS 9 et les versions antérieures du système d'exploitation Macintosh. Il est tout à fait probable (et, selon mon expérience, courante) que certaines personnes utilisent encore une bibliothèque de polices qu'elles ont construite il y a 20 ans. Ce sont généralement des artistes et des types de directeurs artistiques. Par exemple, j'ai quelques polices avec des dates de création de 1993 et ​​des centaines avec des dates de création de 1998, la plupart avec des fourchettes de ressources. J'aurais certainement dû les convertir en formats plus modernes ou cesser de les utiliser, mais soyons honnêtes: une fois que vous avez acheté la bibliothèque de polices Adobe, vous ne voulez plus jamais l'acheter. Au cours de mes années de travail avec les directeurs artistiques en publicité,

  2. Certaines métadonnées seront supprimées dans certaines versions du système d'exploitation. Les métadonnées peuvent être des éléments ajoutés au champ d'information du fichier. Cela ne cassera pas le fichier, mais encore une fois, ni le zip-unzip aller-retour ne produira un fichier identique.

PS: Je suppose ici que si un fichier PSD est compressé pour être remis à une autre personne, il n’a pas été aplati et la police n’a pas été convertie en contour, ce qui signifie que les fichiers de police doivent également être livrés avec le PSD. afin que le destinataire puisse apporter ses propres modifications au fichier. C'est une pratique courante.

Grant Barrett
la source
2
+1 - J'aimerais pouvoir attribuer à ce nombre de points suffisamment de points pour le placer au sommet de la pile. Mac OS propose des variantes de police de type 1 et TrueType dans lesquelles les données de police sont stockées dans la fourchette de ressources. Bien que les outils zip / unzip natifs du système d'exploitation puissent gérer cette situation de manière élégante, tous les outils (notamment les outils de ligne de commande portés sous OS X) ne le seront pas. Ce qui est pire, pas passer comme un éclair les polices et essayer de les envoyer par e - mail ou FTP sera les casser!
Afrazier
1
Mais le problème ici semble être avec la façon dont vous les compressez, pas si vous le pouvez. On dirait avoir besoin d'un programme qui comprend les ressources et que vous devez savoir comment l'utiliser. Est-ce que je lis bien?
juillet
@uSlackr, oui, mais le problème persiste chez le destinataire. Si l'archive est ensuite déplacée sous Windows, vous obtiendrez probablement une pile de fichiers de polices inutiles car, bien que Windows (en particulier NTFS) autorise plusieurs flux de données dans un fichier, les polices sous Windows ne fonctionnent pas de cette façon. Le fichier PSD lui-même est susceptible d'être portable entre Mac et Windows, cependant.
RBerteig
+1 - à titre d'exemple, enregistrez vos polices Mac sur un lecteur réseau, puis voyez leur taille depuis un PC Windows ou Linux - 0 octet! C'est la fourchette des ressources qui confond l'idée de «ça marche juste».
ʍǝɥʇɐɯ
Oui, c'est un fait bien connu dans mon secteur que les polices Mac ne compressent pas bien. Souvent, un utilisateur de PC les décompresse en 0 octet.
Django Reinhardt
14

ZIP utilise la somme de contrôle pour vérifier si le fichier décompressé est exactement identique à ce qu'il était avant l'emballage.

Donc, si cela avait été modifié pour une raison quelconque (une archive endommagée, par exemple), il ne serait même pas décompressé.

Zerkms
la source
non pertinent puisque zip utilise une compression sans perte (ou "stockage", la compression pourrait être désactivée). Le checksum n'est que pour être en mesure de fournir des informations en cas de problème.
Akira
13
Pardonnez le pédantisme, mais ZIP n'utilise pas de somme de contrôle - il utilise un contrôle de redondance cyclique 32 bits (également appelé CRC-32 ) qui détecte une plage d'erreurs beaucoup plus large.
Bevan
5
Le terme "somme de contrôle" a clairement pris un sens un peu plus large que sa définition originale si les gens peuvent [et ils] appellent les résultats des fonctions de hachage cryptographiques "somme de contrôle".
Random832
9

Seulement s'ils font quelque chose de stupide comme faire une conversion en mode texte dessus, ou s'il y a un zip / unzip cassé quelque part qui est confondu par un zip incorporé. (De tels bugs se sont produits dans le passé - signifiant peut-être il y a 10 ans.)

geekosaur
la source
4

Zip utilise un algorithme de compression sans perte pour garantir que les données que vous récupérez sont identiques à celles que vous avez entrées.

(BTW, d’autres technologies telles que jpg, mpeg, mp3 utilisent des techniques de perte pour compresser avec la théorie selon laquelle nos yeux et nos oreilles ne sont pas si sensibles)

uSlackr
la source
0

La seule vérité que je pouvais voir dans la déclaration "zipping breaks fonts" est si le format de fichier PSD a une version "compressée" ou une option que vous pouvez activer dans le programme qui crée ces fichiers et si cette option gère les polices différemment.

L'utilisation de tout programme zip devrait convenir sauf si c'est un buggy.

En réponse à Marc, il existe également des problèmes potentiels de système de fichiers sur les systèmes de fichiers EXT si vous essayez de compresser une structure de répertoires contenant des liens souples et physiques dans un format compressé qui ne les comprend pas (raison pour laquelle je crée toujours un fichier .tar.gz. d'un .zip il). De plus, compresser des liens symboliques avec des chemins relatifs puis les décompresser ailleurs ne fonctionnera évidemment pas, mais ce n'est pas la faute du programme zip.

utilisateur81051
la source
0

S'ils ont déjà eu ce problème (compresser un fichier PSD corrompu), leur logiciel de compression est défectueux, ils n'incluent pas tous les fichiers nécessaires sur le fichier PSD et / ou leurs ordinateurs sont infectés par un virus.

Je leur demanderais s'ils ont eu des corruptions similaires en déplaçant des fichiers sur des disques USB, histoire de ne pas utiliser cette dernière option.

egarcia
la source
0

Juste pour ajouter une mise en garde supplémentaire: la zipping peut entraîner la perte des métadonnées du fichier, telles que les autorisations ou le dernier accès.

Je ne crois pas que cela soit généralement pertinent pour les fichiers et les polices PSD.

Bizarre
la source
Je pense qu'il existe un malentendu au concept d'un algorithme de compression sans perte et aux programmes qui effectuent cette tâche. Sans perte signifie que le flux binaire compressé sera décompressé en un flux binaire de sortie identique. Les méta-informations dépendent du système d'exploitation et doivent être traitées par le système d'exploitation et / ou l'application.
Bora
1
Merci, @ Bora, mais je n'ai aucun malentendu de ce type. Je réalise que la compression n'affecte pas les données réelles du fichier. Je suggère une cause "externe" qui pourrait induire les gens en erreur en leur faisant croire que le zip a endommagé leurs fichiers et leurs répertoires. J'ai été surpris par le passé par la restauration de sauvegardes compressées, seulement pour constater que mes applications ne fonctionnaient plus, car elles dépendaient de métadonnées que je n'avais pas transmises. (Pas un malentendu fondamental de ma part, mais simplement un oubli.)
Oddthinking
0

Zip peut corrompre les noms de fichiers. Zip en tant que tel n'utilise pas Unicode. L'encodage des noms de fichiers n'est pas spécifié et l'environnement local actuel de Windows est utilisé.

Par conséquent, lors du transfert vers un autre système, vos noms de fichiers seront déréglés.

Il existe une extension au format Zip que les programmes les plus récents (Winzip depuis la version 11, je pense) utilisent.

Je préfère 7z, car j’ai eu un zip plein de noms japonais, incapable de le décompresser.

Kugel
la source
0

Un fichier zip est censé être capable de reproduire le contenu exactement.

Une remarque connexe cependant: il est plus difficile de récupérer les données si un fichier zip est corrompu que si les données étaient au format original. Pourquoi? De nombreux formats de fichiers comportent une redondance intégrée et sont conçus de sorte que les erreurs mineures puissent être corrigées ou que les erreurs mineures ne soient pas critiques.

Imaginez un fichier vidéo. Dans la plupart des formats, si une petite partie est corrompue, vous verrez un scintillement temporaire dans cette petite partie de la vidéo, mais vous pourrez toujours regarder la vidéo. Mais si le fichier vidéo est compressé, la capacité de correction d'erreur est réduite et, en fonction de l'étendue de la corruption, vous ne pourrez peut-être tout simplement pas décompresser le fichier / regarder la vidéo. (Ceci est un exemple artificiel car il est inutile de compresser la plupart des formats vidéo dans tous les cas).

Ceci est vrai pour tous les formats de compression - la compression par définition réduit la redondance et donc les capacités de correction d'erreur et son compromis.

Tanon
la source
Comme indiqué ci-dessus, certains formats de fichiers zip prennent en charge la redondance. Cela peut le rendre encore plus sûr que le format d'origine.
DMan