2012-03-23 9 views
6

Tôi gặp sự cố kích thước hình ảnh với ứng dụng iOS của mình và tôi đã phát hiện this article khi tìm một số giải pháp tối ưu hóa kích thước hình ảnhĐịnh dạng và/hoặc thư viện hình ảnh lossless nhỏ nhất?

Sau khi đọc, tôi nhận thấy mình không cần sử dụng chỉ PNG hoặc JPEG. Trên thực tế, tôi có thể sử dụng bất kỳ định dạng hình ảnh nào không được hỗ trợ trên nền tảng iOS theo mặc định. Bởi vì nếu tôi có thể nhận được pixel thực tế, chuyển đổi nó thành UIImage qua CGImage chỉ là một công việc đơn giản. Tôi có thể sử dụng định dạng bitmap đặc biệt và bộ giải mã đặc biệt. Ví dụ: có một kỹ thuật được gọi là bản đồ kết cấu atlas lưu trữ nhiều hình ảnh trong một bitmap lớn và có thể lưu thêm các nhóm trùng lặp.

Vì vậy, tôi hỏi về nén hình ảnh lossless nhỏ nhất (khi nén) định dạng và/hoặc thư viện. Nếu bạn biết một số định dạng hay thư viện tuyệt vời, tôi muốn bạn giới thiệu nó cho tôi.

Thật tuyệt nếu nó là nguồn mở, nhưng tôi không quan tâm nếu đó là nguồn đóng độc quyền và giải pháp trả tiền. Những gì tôi cần chỉ là nén hình ảnh tuyệt vời, không phải mã nguồn. Tất nhiên, nó phải có thể sử dụng được trên nền tảng iOS, vì vậy nó sẽ cung cấp bộ giải mã có thể sử dụng được trong ngôn ngữ C, C + hoặc Objective-C. (Tôi không cần bộ mã hóa trong các nền tảng này)

+0

Bất kỳ thuật toán nén hình ảnh nào sẽ hoạt động tốt hơn trên một số hình ảnh so với các hình ảnh khác. Bạn đang làm việc với loại ảnh nào (ảnh, bản vẽ đường kẻ, văn bản được quét, v.v.)? –

+0

Bạn đang nén loại hình ảnh nào? PNG thường được coi là "đủ tốt" cho những thứ như ảnh chụp màn hình. Và trên iPhone, sức mạnh xử lý có thể là một hạn chế. – Potatoswatter

+0

@Adam Hình ảnh của tôi chủ yếu là nội dung giao diện người dùng. Thường đồ họa được vẽ bởi các công cụ như Photoshop hoặc Illustrator. Không phải ảnh. Nhưng thông thường nó có thể có mức độ nhiếp ảnh chi tiết. – Eonil

Trả lời

1

Hình ảnh khác nhau có các lần nén khác nhau. Với JPEG, bạn hy sinh chất lượng cho kích thước nhỏ hơn và với PNG 24, bạn có được độ trong suốt của alpha. Những gì bạn có thể quan tâm nhiều hơn là có được hình ảnh kích thước nhỏ nhất có thể cho định dạng bạn đang sử dụng. Có 2 công cụ dòng lệnh tốt để xử lý việc này. Bạn có thể chơi đùa với nhiều loại khác nhau, các chương trình như photoshop giúp bạn dễ dàng thấy được cái nào nhỏ nhất. Khi bạn đã tìm thấy định dạng tối ưu, bạn có thể sử dụng "máy đập" để xóa dữ liệu không liên quan không cần thiết bởi hình ảnh nhưng thường được trình chỉnh sửa thêm vào. Dưới đây là 2 tiện ích dòng lệnh mà tôi sử dụng để đảm bảo hình ảnh của mình càng nhỏ càng tốt khi xây dựng trang web, nhưng cũng có lợi cho bất kỳ ứng dụng nào.

optipng: http://optipng.sourceforge.net/ jpegoptim: https://github.com/glennr/jpegoptim#readme

cả hai có thể được cài đặt dễ dàng sử dụng homebrew: http://mxcl.github.com/homebrew/ và tôi muốn giả theres một lựa chọn cho macports là tốt.

Cũng có C-based để có thể được sử dụng trong dự án iOS.

1

Nếu bạn muốn tối ưu hóa JPEG, tôi muốn đi cho http://jpegmini.com

Nếu bạn muốn bước ra khỏi JPEG và PNG bạn có thể thử của Google WebP (http://code.google.com/speed/webp /) nhưng tôi không có ý tưởng nếu có bất kỳ thư viện iOS cho nó và nếu họ là cho dù họ là bất kỳ tốt.