Làm thế nào tôi có thể mở một hình ảnh rất, rất lớn để thu nhỏ nó?


14

Tôi có một hình ảnh với độ phân giải 18984x28591px nhưng tôi không thể mở nó bằng Paint hoặc với Pixlr Editor để giảm kích thước của nó.

Làm cách nào tôi có thể chuyển đổi hoặc mở hình ảnh lớn này trên máy tính xách tay của mình?

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


4
Đó không phải là DPI gây rắc rối, có lẽ đó là kích thước của tệp. Nó sẽ là hơn 1,5 GByte! Là vậy sao?
TFuto

kích thước của hình ảnh là 31,3 MB (32.846.155 byte)
Giáo dục

2
Xin lỗi, không phải kích thước của tập tin. Kích thước trong RAM. Nếu bạn giải mã điều đó thành biểu diễn bình thường, cần 18984x28591x3 byte ~ = 1,5 GByte. Bạn sẽ cần ít nhất lượng RAM này chỉ để mở nó. Và có lẽ là 1 Gbyte khác để thao túng nó. Và 1 GByte cho HĐH. Một cái gì đó như thế.
TFuto

đó là hình ảnh cá nhân của tôi, tôi có thể gửi nó cho bạn bằng google drive để giảm kích thước nếu có thể và cảm ơn trước
Giáo dục

2
Vâng, tôi có thể thử. :-) Bạn cũng có thể dùng thử trình chuyển đổi hàng loạt của IrfanView, nó có thể giúp ích.
TFuto

Câu trả lời:


29

Tôi đã sử dụng ImageMagick trên Ubuntu để thay đổi kích thước những bức ảnh lớn đó.

convert -resize 10% source.jpg dest.jpg

Mất một lúc, nhưng hoạt động với 1 GByte RAM, công cụ đã tạo ra một tệp giống như hoán đổi 4,7 Gbyte cho chính nó.

Thêm thông tin trên AskUbfox .


3
Bạn cũng có thể cung cấp cho nó một giải pháp cụ thể, ví dụconvert -resize 1898x2859 ...
Michael Hampton

2
Cũng có sẵn trên OSX.
o0 '.

1
Ngoài ra còn có một phiên bản Windows.
Tonny

9

Về mặt lý thuyết, hầu hết các định dạng hình ảnh có thể được hạ thấp dần dần, mà không tải toàn bộ hình ảnh vào bộ nhớ, tuy nhiên tôi không biết bất kỳ công cụ nào thực sự thực hiện tính năng đó, ngoại trừ JPEG: điều đặc biệt là bạn không thể chỉ thu nhỏ mà không tải độ phân giải đầy đủ, nhưng cũng hạ thấp mà không giải mã được độ phân giải đầy đủ, nhờ sử dụng sáng tạo DCT (JPEG được mã hóa trong miền tần số, có nghĩa là không phải giải mã thành độ phân giải chính xác như ảnh gốc).

Công cụ giải mã JPEG mặc định (dòng lệnh, gói libjpeg-pross trong Linux, tìm djpeg.exe cho Windows) sẽ hạ thấp JPEG lớn trước khi ứng dụng "thông thường" thậm chí có thể tải xong:

djpeg -scale 1/8 huge_image_that_will_not_fit_in_your_ram.jpg >downscaled.ppm

Tôi cũng đã thấy tùy chọn tải xuống trong khi tải xuống trong một số ứng dụng GUI, nhưng không thể nhớ lại nó vào lúc này.

Điểm chuẩn!

So sánh mức sử dụng bộ nhớ và thời gian xử lý của ImageMagick so với djpeg thu nhỏ hình ảnh lớn (đường ống đến cjpeg , do đó hình ảnh thu được cũng là jpg, để so sánh công bằng với chuyển đổi )

$ display -verbose input.jpg 
input.jpg JPEG 13114x11722 13114x11722+0+0 8-bit sRGB 30.75MB 6.690u 0:06.699

$ /usr/bin/time -f "time=%E mem=%MK" bash -c "convert input.jpg -scale '12.5%' output.jpg"
time=0:10.72 mem=1225844K

$ /usr/bin/time -f "time=%E mem=%MK" bash -c "djpeg -scale 1/8 input.jpg | cjpeg > output2.jpg"
time=0:00.88 mem=1412K

1,2 GB so với 1,4 MB và chậm hơn 10 lần - và đây là hình ảnh tương đối nhỏ 13k x 11k có thể vừa hoàn toàn trong RAM nên không xảy ra hoán đổi.

Mặt khác, sử dụng djpeg để thu nhỏ cũng có những hạn chế riêng: lựa chọn hệ số tỷ lệ bị hạn chế và phương pháp lấy mẫu lại không thể thay đổi.


7

Bạn cũng có thể thử sử dụng Picture Resizer trên Windows (Tôi thích công cụ này)

Bạn chỉ cần kéo và thả hình ảnh trên EXE đơn giản này Điều này đặc biệt hữu ích nếu bạn có nhiều hình ảnh để chuyển đổi vì bạn có thể thực hiện nhiều lần cùng một lúc.

Tất cả các cấu hình được thực hiện thông qua việc đặt tên EXE là IMO tuyệt vời

Tôi chưa bao giờ thử nó với tập tin lớn mặc dù.

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.