Câu hỏi Có thể nén tệp phá vỡ nó không?


Tôi vừa hỏi ai đó gửi cho tôi một nén psd tập tin.

Họ từ chối, viện dẫn điều đó nén một tập tin có thể phá vỡ các phông chữ.

Tôi giả định nén một tập tin là hoàn toàn đảo ngược, do đó tại sao nó thường được sử dụng. Tôi nghĩ người kia không chính xác.

Có bất kỳ sự thật nào về việc nén nội dung tệp của nó không?


86
2018-05-13 02:34


gốc


Có lẽ người khác đã nhầm lẫn nén một tập tin (lossless) với nén jpeg (lossy) mà có thể làm cho kiểm tra trông xấu xí. - Matt H
Tôi biết rằng tôi đã từng gặp vấn đề tương thích với các tệp zip, bởi vì định dạng tệp được sử dụng trên tất cả các nền tảng ... - jokoon
Tôi chắc chắn đã trải qua một số trường hợp 'bệnh lý' mà cả Winrar và WinXP đều tích hợp sẵn các tập tin (hàng chục nghìn trong một tệp zip). Đây là 4-5 năm trước, và chỉ có giải pháp tôi có thể tìm thấy vào thời điểm đó là sử dụng 7-zip. Tốt nhất tôi có thể nhớ, ngay cả 7-Zip cũng không thành công giải nén các tệp được tạo bởi các thường trình khác, cho thấy lỗi trong quá trình nén, không phải là giải nén. Rõ ràng là tôi đã chọn sử dụng 7-zip cho cả hai bên trong hệ thống sản xuất. - FumbleFingers
@ jokoon: Tôi không chắc chắn rằng nó hợp lệ để nói về một định dạng tệp ... được sử dụng trên tất cả các nền tảng. Có một số định dạng nội bộ khác nhau được sử dụng trong các tệp zip và luôn có thể một bản lưu trữ có thể được tạo bởi một thường trình đóng gói bằng định dạng không được hỗ trợ bởi một số thường trình khác mà bạn sử dụng vào thời điểm giải nén. - FumbleFingers
@Fumble; Nhưng vẫn còn, bất kỳ archiver phong nha nên bắt băm thay đổi và báo cáo các hoạt động như là một thất bại - không để lại một tập tin bị hỏng nằm xung quanh. - Phoshi


Các câu trả lời:


Không, nén một tập tin không thể phá vỡ nó. Cung cấp tệp zip của bạn không bị hỏng, tệp sẽ tạo lại tệp giống hệt khi được giải nén.

Trong trường hợp này, sự khác biệt giữa các phông chữ được cài đặt trên hai hệ thống khác nhau có thể gây ra vấn đề nhưng điều đó hoàn toàn không liên quan đến quá trình nén / giải nén.


134
2018-05-13 02:38



Đó là những gì tôi nghi ngờ. Cảm ơn câu trả lời của bạn. - alex
Ngoài ra, một số định dạng zip hỗ trợ dự phòng, có nghĩa là lưu trữ dưới dạng zip thực sự có thể là an toàn hơn hơn lưu trữ tệp đơn giản. - BlueRaja - Danny Pflughoeft
Bạn không nên nói nhanh về điều này, có rất nhiều công cụ nén / giải nén trên đó, đếm tất cả các hệ điều hành hiện có và các thứ khác có thể tạo các tệp zip, tôi sẽ không ngạc nhiên khi một số triển khai không quan tâm đến một số . - jokoon
@ jokoon: sau đó những tệp đó sẽ bị hỏng, mà anh loại trừ một cách rõ ràng - mbx
-1 Về lý thuyết, điều này là đúng, nhưng trong thực tế có vấn đề với phông chữ Mac được giải nén trên PC như 0 byte. Điều này là do một ngã ba tài nguyên được tạo ra. Hãy thử nó cho chính mình và nhìn thấy. - Django Reinhardt


Trong chung sử dụng, zip là lossless (giả định một lỗi-freeimplementation), nhưng có một kịch bản có thể áp dụng cho mất dữ liệu: Các luồng dữ liệu thay thế NTFS. Tính năng ít được sử dụng này cho phép một tập tin có nhiều độc lập bộ nội dung. Hầu hết mã sẽ chỉ nhìn thấy vô danh luồng, nhưng những người khác có thể tồn tại.

Vì thế; nếu một chương trình quyết định lưu trữ dữ liệu trong luồng dữ liệu thay thế NTFS, ứng dụng khách zip của bạn sẽ không thấy phần đó (nó cần phải yêu cầu một cách rõ ràng, và RAR là người duy nhất thực hiện điều này).

Nhưng để nhấn mạnh: điều này được sử dụng rất hiếm khi, và không bình thường với những thứ như PSD. Tôi nghi ngờ bạn của bạn / liên kết chỉ đơn giản là sai.


80
2018-05-13 06:28



Wow, đây là kiến ​​thức hoàn toàn mới đối với tôi. - kizzx2
Mới đối với tôi và kỳ quái. Khi nào một tệp không phải là tệp? Khi nội dung của nó thay đổi theo ý muốn. Tôi đã nghe nói về những điều tồi tệ hơn, nhưng không nhiều. - msw
@msw - chúng không biến đổi theo ý thích; đơn giản - có thể có nhiều hơn một đoạn dữ liệu được liên kết với một bản ghi tệp duy nhất. Hầu như luôn luôn có chính xác một (nó rất hiếm khi được sử dụng), nhưng ... - Marc Gravell♦
Quay lại SO! Quá kỹ thuật! (chỉ đùa thôi;) - Byron Whitlock
Và ở đầu kia của quang phổ, chúng ta có mọi người phàn nàn về siêu dữ liệu của hệ thống cụ thể được buộc đưa vào lưu trữ. - Daniel Beck♦


Có những trường hợp trong đó phông chữ Mac có thể không giống nhau nếu nó được nén và sau đó giải nén. Điều này có thể không phá vỡ nó, nhưng trái với một số báo cáo ở trên, quá trình có thể không cung cấp một tập tin giống hệt nhau.

Các trường hợp được thảo luận tại đây:

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

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

Nhưng trong ngắn hạn:

  1. Nếu chúng là nhiều phông chữ cũ hơn có chứa tài nguyên dĩa và người dùng có một phiên bản cũ hơn của Mac OS X, thường là 10.4 hoặc trước đó. Các phông chữ cũ như công việc này trên OS X mặc dù ban đầu chúng được thiết kế cho OS 9 và các phiên bản trước của hệ điều hành Macintosh. Đó là hoàn toàn có khả năng (và, theo kinh nghiệm của tôi, phổ biến) rằng một số folks vẫn đang sử dụng một thư viện font họ đã xây dựng miễn là 20 năm trước đây. Thông thường đây là những nghệ sĩ và các loại đạo diễn nghệ thuật. Ví dụ, tôi có một vài phông chữ với ngày tạo năm 1993 và hàng trăm với ngày tạo năm 1998, hầu hết đều có dĩa tài nguyên. Chắc chắn tôi nên chuyển đổi chúng sang các định dạng hiện đại hơn hoặc ngừng sử dụng chúng, nhưng hãy đối mặt với nó: một khi bạn mua Thư viện Adobe Font, bạn không bao giờ muốn mua lại nó nữa. Trong những năm làm việc với các đạo diễn nghệ thuật trong quảng cáo, tôi đã học cách tôn trọng thư mục phông chữ như thể đó là cuốn nhật ký của một giám đốc nghệ thuật, một cuốn sách phổ biến, hoặc siêu sao.

  2. Một số siêu dữ liệu sẽ bị xóa trong một số phiên bản hệ điều hành nhất định. Siêu dữ liệu có thể là những thứ được thêm vào trường thông tin của tệp. Điều này sẽ không phá vỡ các tập tin, nhưng một lần nữa, cũng sẽ không phải là roundtrip zip-giải nén sản xuất một tập tin giống hệt nhau.

PS: Tôi giả định ở đây rằng nếu người ta đang nén một tệp PSD để phân phối cho người khác, nó chưa được làm phẳng và phông chữ chưa được chuyển thành phác thảo, điều đó có nghĩa là phông chữ cũng sẽ phân phối các tệp phông chữ với PSD để người ở đầu nhận có thể thực hiện thay đổi của riêng họ đối với tệp. Đây là một thực tế phổ biến.


33
2018-05-13 13:22



+1 - Tôi ước tôi có thể cho đủ điểm để đẩy nó lên đầu ngăn xếp. Mac OS có cả hai loại phông chữ Type 1 và TrueType, nơi dữ liệu phông chữ được lưu trữ trong ngã ba tài nguyên. Trong khi các công cụ zip / giải nén gốc trong hệ điều hành có thể xử lý tình trạng này một cách duyên dáng, không phải tất cả các công cụ (đặc biệt là các công cụ dòng lệnh được chuyển đến OS X) sẽ. Tệ hơn, không phải nén phông chữ và cố gắng gửi chúng qua email hoặc FTP sẽ phá vỡ chúng! - afrazier
Nhưng vấn đề ở đây dường như là cách bạn nén chúng, không cho dù bạn có thể. Có vẻ như cần một chương trình hiểu được nguồn tài nguyên và bạn phải biết cách sử dụng nó. Tôi có đọc đúng không? - uSlackr
@uSlackr, phải, nhưng vấn đề vẫn tồn tại ở đầu nhận. Nếu lưu trữ sau đó được di chuyển Windows, bạn có thể sẽ nhận được một chồng các tập tin font vô dụng bởi vì mặc dù Windows (đặc biệt là NTFS) cho phép nhiều luồng dữ liệu trong một tập tin, phông chữ trên Windows không hoạt động theo cách đó. Các tập tin PSD chính nó có khả năng được di động betwenn Mac và Windows, tuy nhiên. - RBerteig
+1 - làm ví dụ, lưu các phông chữ Mac của bạn trên một ổ đĩa mạng và sau đó xem chúng lớn như thế nào từ một máy tính Windows hoặc Linux - 0 byte! Nó là tài nguyên fork thingy khó hiểu ý tưởng 'nó chỉ hoạt động'. - ʍǝɥʇɐɯ
Vâng, đó là một thực tế nổi tiếng trong ngành công nghiệp của tôi rằng phông chữ Mac không nén tốt. Thường thì người dùng PC sẽ giải nén chúng 0 byte. - Django Reinhardt


ZIP sử dụng tổng kiểm tra để kiểm tra xem tệp đã giải nén có chính xác giống như trước khi đóng gói hay không.

Vì vậy, nếu nó đã được thay đổi trong một số lý do (lưu trữ bị hỏng, ví dụ) - nó thậm chí sẽ không được giải nén.


14
2018-05-13 02:37



không thích hợp kể từ khi zip đang sử dụng nén không mất dữ liệu (hoặc 'lưu trữ', có thể tắt tính năng nén). checksumming là chỉ để beeing có thể cung cấp một số thông tin phản hồi nếu một cái gì đó đã đi sai. - akira
Hãy tha thứ cho người đi bộ, nhưng ZIP không sử dụng một kiểm tra - nó sử dụng một kiểm tra dự phòng cyclic 32 bit (aka CRC-32) phát hiện phạm vi lỗi rộng hơn nhiều. - Bevan
Thuật ngữ "tổng kiểm tra" rõ ràng có ý nghĩa rộng hơn một chút so với định nghĩa ban đầu của nó nếu mọi người có thể [và họ] gọi kết quả hàm băm mật mã "tổng kiểm tra". - Random832


Chỉ khi họ đang làm điều gì đó ngớ ngẩn như thực hiện chuyển đổi chế độ văn bản trên nó, hoặc nếu có một zip / giải nén bị hỏng một nơi nào đó mà bị nhầm lẫn bởi một zip nhúng. (Những lỗi như vậy  đã xảy ra trong quá khứ - có nghĩa là có thể 10 năm trước.)


9
2018-05-13 02:37





Zip sử dụng thuật toán nén ít tổn hao để đảm bảo rằng dữ liệu bạn lấy lại giống hệt với dữ liệu bạn đã nhập.

(BTW, Các công nghệ khác như jpg, mpeg, mp3, sử dụng kỹ thuật lossy để nén với lý thuyết rằng mắt và tai của chúng tôi không quá nhạy cảm)


4
2018-05-13 03:07





Sự thật duy nhất tôi có thể thấy trong câu lệnh "zipping breaks fonts" là nếu định dạng tệp PSD có một phiên bản "nén" hoặc tùy chọn bạn có thể bật trong bất kỳ chương trình nào tạo các tệp này và tùy chọn này bằng cách nào đó xử lý phông chữ khác nhau.

Sử dụng bất kỳ chương trình zip nào cũng được, ngoại trừ nếu nó là lỗi.

Để trả lời cho Marc, cũng có các vấn đề hệ thống tập tin tiềm ẩn trên các hệ thống tệp EXT nếu bạn cố gắng nén một cấu trúc thư mục chứa các liên kết mềm và cứng theo định dạng nén mà không hiểu chúng (đó là lý do tại sao tôi luôn tạo một .tar.gz của một .zip ở đó). Ngoài ra, nén các liên kết mềm với các đường dẫn tương đối, sau đó giải nén chúng ở một nơi khác sẽ không hoạt động, nhưng đó không phải lỗi của chương trình zip.


0
2018-05-13 09:04