2014-05-16 13 views
7

Bối cảnh:Điều gì làm tôi đau đớn?

Tôi đang làm việc để tạo một nhóm PNG càng nhỏ càng tốt. Tôi đang chơi với các công cụ như PngOut, PngCrush và OptiPng.

Vấn đề:

tôi chạy qua một tập tin đó là 1434 KB nhưng nó chỉ 230 x 230 pixel. Khi tôi mở tệp trong Paint.Net và lưu tệp dưới dạng tệp mới, tệp mới chỉ có 77 KB. Đó là một con số khổng lồ khổng lồ 1.325 MB trong đó!

Mục tiêu:

Tôi muốn hiểu chính xác những gì có thể được đầy hơi tập tin, và cũng có thể làm thế nào tôi có thể tự động thoát khỏi sưng lên như vậy khi nó bắt gặp, và đang gặp khó khăn hoàn thành một trong những mục tiêu . OptiPng không xóa siêu dữ liệu.

Progress:

tôi thấy exiftool mà dường như tất cả xung quanh tuyệt vời, nhưng nó không hiển thị bất kỳ thẻ điên.

RIOT có thể tạo ra một phiên bản mới của hình ảnh mà không có thêm dữ liệu, nhưng nó không cho tôi manh mối nào về những gì sưng lên - nó chắc chắn không phải là thông tin XMP hoặc Bình luận (siêu dữ liệu duy nhất tôi có thể chọn bao gồm). Nhưng RIOT tự động và buộc phải loại bỏ thông tin IPTC và hồ sơ EXIF ​​- nó có thể là một trong số đó không?

phản hồi mong muốn

những suy nghĩ của bạn về làm thế nào để programatically hoặc tự động losslessly đè bẹp và loại bỏ siêu dữ liệu từ PNG (và cho rằng vấn đề, loại hình ảnh khác) đều được đánh giá cao. Tuy nhiên, tôi muốn không chỉ vứt bỏ thông tin trong một tập tin mà không hiểu nó là gì.

Cập nhật

tôi thấy Steel Bytes Jpeg & PNG Stripper, và nó dải siêu dữ liệu từ tập tin (và có một chế độ dòng lệnh), năng suất một tập tin 84 KB mà tôi sau đó có thể PNG tối ưu hóa, nhưng điều này vẫn doesn 't giúp tôi hiểu những gì tôi đang loại bỏ, và tôi cảm thấy như tôi cần phải hiểu trước khi tiếp tục. Tôi không cần phải được phép tối ưu hóa những hình ảnh này được sử dụng trong một trang web sản xuất công khai, nhưng tôi cần phải tự tin về những gì tôi đang làm trước khi thực hiện một thay đổi như vậy.

Cập nhật 2

tôi đã không nhận thấy rằng OptiPng có một lựa chọn, -strip all, dùng để tách siêu dữ liệu. Điều này là tốt hơn so với thép Bytes Stripper bởi một shot dài, vì nó có rất nhiều lựa chọn hơn để sao lưu xử lý các tập tin gốc - giữ một bản sao lưu, hoặc đầu ra tập tin tối ưu hóa đến một vị trí mới. Nó cũng có thể tối ưu hóa dữ liệu hình ảnh của PNG cùng một lúc, chỉ yêu cầu một công cụ thay vì hai.

Phụ Lục

Đây là những gì exiftool -a -G [file.png] show:

[ExifTool]  ExifTool Version Number   : 9.60 
[File]   File Name      : file.png 
[File]   Directory      : . 
[File]   File Size      : 1446 kB 
[File]   File Modification Date/Time  : 2014:03:31 16:37:20-07:00 
[File]   File Access Date/Time   : 2014:05:15 15:47:53-07:00 
[File]   File Creation Date/Time   : 2014:05:15 15:47:53-07:00 
[File]   File Permissions    : rw-rw-rw- 
[File]   File Type      : PNG 
[File]   MIME Type      : image/png 
[PNG]   Image Width      : 230 
[PNG]   Image Height     : 230 
[PNG]   Bit Depth      : 8 
[PNG]   Color Type      : RGB with Alpha 
[PNG]   Compression      : Deflate/Inflate 
[PNG]   Filter       : Adaptive 
[PNG]   Interlace      : Noninterlaced 
[PNG]   Significant Bits    : 8 8 8 8 
[PNG]   Pixels Per Unit X    : 2834 
[PNG]   Pixels Per Unit Y    : 2834 
[PNG]   Pixel Units      : Meters 
[PNG]   Creation Time     : 3/31/14 
[PNG]   Software      : Adobe Fireworks CS6 
[XMP]   XMP Toolkit      : Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 
[XMP]   Creator Tool     : Adobe Fireworks CS6 (Macintosh) 
[XMP]   Create Date      : 2012:10:24 19:01:30Z 
[XMP]   Modify Date      : 2014:03:31 23:34:45Z 
[XMP]   Format       : image/png 
[Composite]  Image Size      : 230x230 
+0

Bạn có thể mở rộng trên "không có thẻ điên" không? 230 x 230 x 4 = 206,6Kb, và thậm chí với nén * tưởng tượng tồi tệ nhất * không thể mở rộng quá nhiều. 'pngcheck' nên là một công cụ tốt. Hầu hết các ứng cử viên có khả năng: một Hồ sơ màu lớn ('gAma',' cHRM' hoặc 'iCCP'). – usr2564301

+0

@Jongware Xem phụ lục - đây là toàn bộ đầu ra mà exiftool cung cấp cho các thẻ siêu dữ liệu trong tệp. Tôi sẽ nhìn vào pngcheck. Cảm ơn! – ErikE

+0

"Exif" chỉ là một phần nhỏ - một phần của siêu dữ liệu PNG; loại "tóm tắt", cho phần mềm có thể cần nó theo định dạng dễ hiểu. 'pngcheck' sẽ làm lộ các đường ruột thô của các PNG của bạn. Chỉ * rất * rất ít khối dữ liệu thực sự * yêu cầu *. – usr2564301

Trả lời

3

Các dữ liệu pixel nguyên bản của hình ảnh 230x230 điểm ảnh của bạn không nên phải là lớn, ngay cả khi xấu hoặc không gì cả nén. Do đó, tất cả dữ liệu này phải nằm trong đoạn dữ liệu PNG không chuẩn.

Sử dụng pngcheck để tìm hiểu xem phần nào nằm trong tệp và mức độ lớn của chúng. Sau đó, sử dụng W3C PNG Specifications để tìm hiểu cách sử dụng các đoạn cụ thể và nếu cần, hãy tìm nơi khác cho các khối "dữ liệu riêng tư".

Trừ khi bạn đang xử lý nghiêm trọng đoạn không chuẩn, tất cả có name cho biết không phải là "bắt buộc", là những ứng viên có thể xóa.

+0

Xem phần Kết quả mà tôi đã thêm vào câu hỏi. – ErikE

+0

... hay không. Tôi phải bằng cách nào đó thất bại để nhấn gửi. Tôi sẽ cố gắng cập nhật câu hỏi sớm. – ErikE

Các vấn đề liên quan