Làm thế nào để giảm kích thước tập tin mà không làm giảm chất lượng hoặc độ phân giải?


7

Tôi có hơn 2.300 hình ảnh mà tôi muốn chuyển sang điện thoại của mình nhưng ở kích thước ban đầu, chúng chiếm rất nhiều dung lượng (6.44gb) tôi muốn cắt giảm mà không làm giảm chất lượng hoặc độ phân giải. Tôi biết nó có thể được thực hiện trong linux với một cái gì đó như pgncrush. Tôi hiện có quyền truy cập vào hệ thống windows và tất cả các tệp đều ở định dạng jpeg.

Tôi phải làm nó như thế nào?


Các bản sao của hình ảnh trên điện thoại sẽ chỉ được xem trên màn hình của điện thoại hay bạn muốn in / chia sẻ chúng từ điện thoại sang một số màn hình khác?
Edd

2
Thuật ngữ " TANSTAAFL " được nhắc đến ở đây. Bạn có thể chạy tất cả các tiện ích Linux này trong Windows với một chút công việc. Nhưng nói chung, họ sẽ chỉ cung cấp một khoản tiết kiệm nhỏ hoặc yêu cầu giảm độ phân giải hoặc chất lượng hình ảnh.
Xin vui lòng đọc hồ sơ của tôi

1
Đó không phải là một con vịt, đó là một con thiên nga!

1
Bạn nên luôn luôn có đủ danh tiếng để trả lời câu hỏi của riêng bạn. Câu trả lời này có thể sẽ giúp bạn có thêm danh tiếng.
ChrisF

2
Xin lưu ý rằng việc tải lên (máy chủ hình ảnh yêu thích của bạn ở đây) có thể bị ảnh hưởng bởi việc chúng giải nén hình ảnh cho bạn, điều này có thể khiến việc so sánh trở nên vô ích.
Rowland Shaw

Câu trả lời:


18

Kích thước tệp, chất lượng, độ phân giải - chọn bất kỳ hai.

Nếu bạn có hình ảnh ở định dạng không nén như BMP, thì bạn có thể làm cho chúng nhỏ hơn một chút mà không làm giảm chất lượng hoặc độ phân giải bằng cách lưu chúng ở định dạng nén không làm mất nén, như PNG-24.

Hình ảnh JPEG đã được nén, do đó, với chất lượng và khả năng phục hồi nhất định, chúng đã nhỏ đến mức có thể. Vì vậy, nếu bạn muốn kích thước tệp nhỏ hơn, bạn phải hy sinh chất lượng hoặc độ phân giải.

Vì bạn sẽ hiển thị hình ảnh trên điện thoại, bạn có thể hy sinh một chút chất lượng mà không nhận được bất kỳ sự khác biệt đáng chú ý nào. Nếu hình ảnh JPEG được lưu ở chất lượng 100, bạn có thể thử tạo một bản sao bằng cách sử dụng ví dụ chất lượng 80 và xem điều đó có đủ tốt cho nhu cầu của bạn không.

Nếu độ phân giải của hình ảnh cao hơn độ phân giải của màn hình trên điện thoại của bạn, bạn sẽ chỉ sử dụng độ phân giải bổ sung đó nếu bạn phóng to hình ảnh. Trong trường hợp đó, việc giảm độ phân giải sẽ chỉ giới hạn mức độ bạn có thể phóng to.


đôi khi nén hoặc hiếm khi chúng có thể siết chặt các jpg hơn một chút.
Michael Nielsen

1
@MichaelNielsen: Có lẽ vì nó chứa một số siêu dữ liệu không được nén, do đó, việc lưu hình ảnh mà không có siêu dữ liệu sẽ làm cho nó thậm chí còn nhỏ hơn.
Guffa

Sẽ thật ngu ngốc khi tước siêu dữ liệu trong cơ sở dữ liệu của riêng bạn.
Michael Nielsen

3
@MichaelNielsen: Có, nhưng bạn đang thiếu điểm. Siêu dữ liệu là lý do có bất kỳ dữ liệu có thể nén nào trong tệp.
Guffa

Có các định dạng khác ngoài JPG có thể lưu trữ hiệu quả hơn so với JPG, do đó, bằng cách chuyển đổi sang một trong những định dạng đó, bạn có thể đạt được nén tốt hơn mà không bị giảm chất lượng. Thông tin thêm trong câu trả lời của tôi dưới đây photo.stackexchange.com/a/79086/4272
Chris Wuestefeld

5

Chúng ta hãy bắt đầu với một khái niệm: máy nén có thể giảm kích thước của một cái gì đó (như tệp văn bản) bằng cách xử lý nó và thể hiện cùng một thông tin bằng cách sử dụng ít ký hiệu hơn. Đó là cách Zip làm cho một tệp văn bản nhỏ hơn. Đây là nén không mất mát.

Hình ảnh và âm thanh (và, do đó, video) sử dụng lượng thông tin rất lớn: ví dụ: hình ảnh 5 megapixel, ở định dạng không nén bất cứ thứ gì (như TIFF) sẽ mất 5 megabyte x 3 màu * RGB) = 15 MB không gian.

Để giảm kích thước tệp, định dạng JPEG làm cho bạn mất một số thông tin từ hình ảnh: có thể là chất lượng, màu sắc, v.v ... Đó là lý do tại sao bạn có thể mở JPEG trong một số chương trình chỉnh sửa ảnh (Photoshop, Gimp, v.v.) và sau đó lưu nó với ít chất lượng hơn: nó sẽ sử dụng ít thông tin hơn để thể hiện hình ảnh của bạn, với kích thước tệp nhỏ hơn, nhưng sẽ mất một số chất lượng. Nếu bạn (hoặc bất kỳ người nào) sẽ có thể nhận thấy chất lượng thấp là một điểm quan trọng khi chọn "mức độ nén" bạn muốn.

Vì vậy, nói chung, cho các mục đích thực tế, bạn sẽ mất rất nhiều chất lượng để giảm kích thước của hình ảnh JPEG, vì nó đã được nén.

Nhưng bạn muốn sử dụng nó trong điện thoại di động của bạn, phải không?

Bạn đã không nói bạn có điện thoại di động. Giả sử rằng bạn có Samsung galaxy s3 . Bạn có thể xem thông số kỹ thuật của nó: độ phân giải màn hình là 1280x720 pixel.

Vì vậy, khi bạn xem một hình ảnh trong đó, không quan trọng kích thước hình ảnh gốc: bạn sẽ có thể thấy 1280x720 pixel, bởi vì đó là lượng pixel tối đa mà tế bào sẽ có thể hiển thị.

Nếu bạn chụp tất cả ảnh của mình, thay đổi kích thước của chúng thành 1280x720 pixel và mở trong điện thoại, bạn sẽ thấy chúng giống như cách bạn nhìn thấy chúng với độ phân giải gốc. Bạn sẽ mất "độ phân giải" từ ảnh gốc, nhưng đó là thứ mà bạn không thể nhìn thấy trong điện thoại của mình ...

Làm thế nào bạn làm điều đó trong Windows : sử dụng bất kỳ chương trình nào bạn thích có thể chỉnh sửa ảnh: Photoshop, Gimp, IrfanView ... nhưng vì bạn đang nói về việc thực hiện nó trong một số lượng lớn tệp, có lẽ bạn đang nghĩ về ImageMagick hoặc một chương trình tương tự, có thể thực hiện cùng một hoạt động trong một số lượng lớn tệp.

Chỉnh sửa: để làm điều đó với Imagemagick:

1 - sao chép tất cả hình ảnh của bạn vào một thư mục mới (ví dụ: Temp1), để tránh mất bản gốc

2 - tạo thư mục mới nơi ảnh của bạn sẽ được thay đổi kích thước (ví dụ: Temp2)

3 - mở một cmdcửa sổ, đi đến thư mục có các hình ảnh được sao chép (Temp1)

4 - loại:

mogrify -path full_path_to_Temp2-kích thước 1280x720 * .jpg


Đây là những gì tôi đang tìm kiếm. Bạn cũng đoán đúng điện thoại của tôi, đó là S3. Tôi ma tải về fantemagick ngay bây giờ. Điều gì sẽ thay đổi kích thước hình ảnh của tất cả các tệp trong một thư mục thành 1280x720?
cám

Trên wordpress tôi sử dụng một plugin để tự động thay đổi kích thước hình ảnh được tải lên Nó sử dụng tiện ích phía máy chủ có tên littleutils ( sourceforge.net/projects/littleutils ) Tôi muốn sử dụng một cái gì đó như thế. Mà làm cho tôi tin rằng nó có thể có thể để nén jpeg xa hơn mà không làm mất nhiều chất lượng hoặc giảm độ phân giải. Hiện tại hầu hết các hình ảnh của tôi là 2305x3072 hoặc 2592X1944.
cám

1
Tôi đã tìm thấy điều này trên linux manpagez.com/man/1/opt-jpg
cám

2
oh, vậy bạn có sẵn sàng hy sinh giải quyết?
Lightcraft kỹ thuật số

4
Mặc dù tôi đồng ý với mọi thứ được nói ở đây, tôi muốn chỉ ra rằng trong khi nhiều người hiển thị ảnh trên điện thoại của họ, họ cũng thích phóng to để hiển thị các phần của hình ảnh chi tiết hơn. Nếu bạn làm điều này nhưng đã thu nhỏ hình ảnh của bạn xuống độ phân giải của màn hình điện thoại, bạn sẽ nhận thấy sự khác biệt vì hiện tại bạn đang hiển thị một vùng nhỏ hơn ở độ phân giải điện thoại, nhưng bạn đã mất các pixel đó. Chỉ là một ý nghĩ.
rất bối rối

2

Bạn có thể có được tối ưu hóa lossless (dựa trên việc tối ưu hóa các bảng Huffman). Tiện ích jpegoptim cung cấp thuật toán này.

Cài đặt nó với (trên debian):

apt-get install jpegoptim

Để chạy mô phỏng (không có chế độ hành động):

jpegoptim -n -p dsc07844.jpg

trả về:

dsc07844.jpg 3872x2592 24bit Exif  [OK] 3057132 --> 2518805 bytes (17.61%), optimized.

Để tối ưu hóa:

jpegoptim -p dsc07844.jpg

Nó bảo tồn siêu dữ liệu exif


2

Ah, tốt, bạn đã tự trả lời, nhưng thay đổi yêu cầu của bạn. "Không giảm chất lượng" và "không giảm chất lượng bằng mắt thường" rất khác nhau với hình ảnh.

Ngoài ra, PNGcrush và opt-jpg hoạt động hoàn toàn khác nhau; chỉ lưu ý điều này bởi vì bạn đã đề cập đến PNGcrush trong OP của bạn. PNGcrush chỉ tối ưu hóa siêu dữ liệu về hình ảnh, không phải hình ảnh. Đây là lý do tại sao bạn thường chỉ đạt được 1-2%.

Thành thật mà nói, như hai hình ảnh trong câu trả lời của bạn, chúng trông hoàn toàn khác với mắt tôi. Hình ảnh được tối ưu hóa được rửa sạch hơn nhiều và có độ sâu đen ít hơn. Vì là JPEG, nên điều này có thể được thực hiện bằng cách cô đặc bảng màu, điều này sẽ làm cho hình ảnh trông ... khác biệt.

Câu trả lời cho câu hỏi ban đầu của bạn là bạn không thể giảm đáng kể kích thước tệp mà không ảnh hưởng đến một số loại chất lượng (ngoại trừ tiết kiệm 1-2% được đề cập trước đó bằng siêu dữ liệu hoặc nén thẻ.) , Ví dụ , bằng cách xóa dữ liệu EXIF, et cetera, tùy thuộc vào định dạng của tệp (RAW, TIFF, JPEG).

Để giảm kích thước tệp bằng bất kỳ biện pháp thực tế nào, bạn phải mất chất lượng hoặc độ phân giải hoặc cả hai. Nếu đó không phải là trường hợp, nhiếp ảnh gia sẽ không xử lý trong RAW.


1

Với độ phân giải và mức chất lượng, tồn tại một số định dạng tệp hình ảnh khác có thể cho tương đương, nhưng lưu trữ dữ liệu gọn hơn so với JPEG tiêu chuẩn cũ.

Một số tùy chọn bao gồm

  • JPEG2000 , được xác định bởi phần mở rộng .jp2, là một định dạng cũ hơn mà không bao giờ phổ biến. Nó sử dụng các biến đổi wavelet chứ không phải DCT của jpeg (biến đổi cosine rời rạc) dẫn đến các tạo tác ít rõ ràng hơn, do đó cho phép nén nhiều hơn với chất lượng cảm nhận tương đương. Họ yêu cầu 20% lợi thế. https://en.wikipedia.org/wiki/JPEG_2000

  • WebP của Google sử dụng các thuật toán tiên tiến hơn (nếu tôi hiểu chính xác, nó tương tự như nén H.265 ngày nay tốt hơn cho video so với MPEG), mà họ tuyên bố có thể tiết kiệm 40% với chất lượng tương đương. http://www.cnet.com/news/google-offers-jpeg-alternative-for-faster-web/# !

  • BPG (cho "đồ họa di động tốt hơn") là một nỗ lực nguồn mở mới. Nó có vẻ tương tự như cách tiếp cận với WebP, với các ưu điểm bổ sung như độ sâu bit và dải động tốt hơn, nhưng cho đến ngày nay, nó có ít khả năng tương thích với các phần mềm khác nhau. http://bellard.org/bpg/

Nếu bạn muốn các chi tiết kỳ cục của nitty về cách so sánh giữa chúng và một số người khác, bạn có thể xem biểu đồ và đồ thị ở đây: https://people.mozilla.org/~josh/lossy_compression_image_study_july_2014/


0

Bạn cần "nén" thư mục - Có nhiều cách khác nhau để thực hiện việc này - cách cổ điển là "Zip" chúng.

Trong cửa sổ (XP trở đi), nhấp chuột phải vào thư mục chứa, nhấp vào "gửi đến" rồi "Thư mục nén"

Điều này sẽ làm giảm kích thước của thư mục và lưu nó dưới dạng tệp .zip.

TUY NHIÊN - Các tệp Jpeg đã được nén trong mã hóa của riêng chúng - vì vậy tệp nén cuối cùng thực sự có thể không khác nhau nhiều.


Nếu tôi nén chúng, tôi sẽ không thể xem chúng trên điện thoại của mình, nơi tôi sẽ chuyển chúng. Tôi biết có nhiều cách để làm điều đó cá nhân. Tôi cần một cách để làm điều đó trong một lần. Tốt nhất là dưới cửa sổ.
cám

Ok tôi hiểu rồi - hmm, nếu chúng phải được giữ dưới dạng jpg, mà không làm giảm chất lượng hoặc độ phân giải Tôi không nghĩ bạn sẽ có thể làm điều đó. Nếu bạn sẵn sàng hạ thấp chất lượng SLIGHTLY để sự khác biệt không rõ ràng, thì bạn có thể dễ dàng tiết kiệm một lượng kích thước tốt.
Lightcraft kỹ thuật số

0

Bạn có thể sử dụng một chương trình có tên là Moo0 Image Sizer , cho phép nối lại nhiều hình ảnh cùng một lúc (kể từ ngày 15 tháng 12 năm 2012, các định dạng có sẵn là jpg, png, bmp và gif).

Chương trình này là miễn phí cho sử dụng phi thương mại.


Xin chào E. Fisher, chào mừng đến với trang web. Nó sẽ hữu ích, tôi nghĩ, để đưa ra câu trả lời của bạn với một số chi tiết, và xác nhận, chi tiết.
John Cavan

0

Tôi đã tìm thấy câu trả lời tôi đang tìm kiếm. Câu trả lời là opt-jpg cho Linux. Tôi đã không tìm thấy nó trên kho lưu trữ Ubuntu. Vì vậy, bạn phải tải xuống nguồn của littleutils ( http://sourceforge.net/projects/littleutils/ ) có kèm theo opt-jpg.

Để cài đặt từ nguồn. Tải xuống Tar với wget và:

tar jxvf littleutils-1.0.27.tar.bz2 && cd littleutils-1.0.24

...

./configure --prefix=/usr && make && make install && make install-extra

Bạn phải root sudo su

Tôi đã sử dụng một hình ảnh con vịt chẳng hạn. Tệp chưa được tối ưu hóa là 1,1M sau khi tối ưu hóa 991kb mà không làm mất chất lượng hình ảnh (bằng mắt thường) hoặc thay đổi độ phân giải của hình ảnh. Nó có vẻ không phải là sự khác biệt lớn (giảm 108kb) nhưng với 2300+ hình ảnh và kích thước trung bình 6,44gb với cùng một mức giảm kích thước có thể tăng thêm rất nhiều không gian. nhập mô tả hình ảnh ở đây

Bạn có thể thấy hình ảnh Vịt ban đầu được tải lên flickr: nhập mô tả hình ảnh ở đây

Và một trong những tối ưu hóa: nhập mô tả hình ảnh ở đây

Mắt thường có thể cho biết sự khác biệt?

Tôi đã tiết kiệm được bao nhiêu dung lượng. Bạn sẽ phải chờ một thời gian vì tôi sẽ phải để nó chạy khi tôi không sử dụng comp. Điều này sẽ mất một lúc và tôi sẽ nhớ để báo cáo lại.


Chỉ để cập nhật cho mọi người về bao nhiêu không gian tôi đã tiết kiệm. Mất khoảng 25 phút để hoàn thành và tôi đã tiết kiệm được khoảng ~ 200 MB kích thước.
cám

1
Vì vậy, tiết kiệm 3% tổng thể?
Vui lòng đọc hồ sơ của tôi

2
Như một bên, bạn có biết đó là một con thiên nga, và không phải là một con vịt, phải không?
Rowland Shaw

@mattdm Có không nhiều nhưng bây giờ tôi biết rằng nó có thể được thực hiện và không thực sự là "TANSTAAFL" :)
cám

1
Mắt thường không thể nhận ra sự khác biệt khi bạn giảm độ phân giải để khớp với điện thoại, cũng như nếu bạn giảm chất lượng từ 12 xuống 8. Hai điều đó cùng nhau sẽ giúp bạn tiết kiệm% 75 chứ không phải 3% kích thước tệp của bạn , mang toàn bộ bộ sưu tập dưới một buổi biểu diễn, không có cách nào để nói mà không phóng to. (Không chắc cài đặt chất lượng ban đầu được lưu là gì, nhưng bạn thường có thể có được hình ảnh kích thước HD xuống còn 250kb hoặc hơn mà vẫn trông tuyệt vời).
wedstrom


0

"Image Resizer cho Windows" là một tiện ích miễn phí tuyệt vời với chưa đến 1 MB cho người dùng Windows. Tất cả các hình ảnh có dung lượng 5 MB hoặc 10 MB có thể được giảm xuống dưới 200kb, với độ rõ nét gần như nhau. Vấn đề là: những hình ảnh 10 MB này có độ phân giải 4000 X 3000, nhưng điện thoại hoặc máy tính của bạn chỉ bằng một phần ba, khiến nó có cảm giác gần như giống nhau. Vì vậy, trừ khi bạn sẽ in bất kỳ thứ nào trong số này, tôi sẽ khuyên bạn nên nén hình ảnh của mình bằng công cụ đơn giản thực sự này. Chỉ cần chọn tất cả các tệp, nhấp chuột phải và nói Thay đổi kích thước. Nó sẽ chuyển đổi 100 hình ảnh trong vòng chưa đầy một phút.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.