PNG Batch thay đổi kích thước và tiết kiệm trong khi vẫn giữ được tính minh bạch


10

Tôi đã có khoảng hơn 700 hình ảnh png. Tôi cần thay đổi kích thước và lưu chúng. Tuy nhiên tôi cũng cần sự minh bạch của họ để được nguyên vẹn.

Tôi đã thử Irfanview, nhưng nó không hoạt động. GIMP hoạt động, nhưng tôi không thể tìm thấy tùy chọn tiết kiệm hàng loạt. Tôi sẽ không thay đổi kích thước thủ công và lưu hơn 700 hình ảnh. Điều đó quá tẻ nhạt.

Có ứng dụng nào ngoài đó làm công việc tôi cần không?


Bạn đã thử ImageMagick chưa?
slhck

Không, nhưng đó không phải là cho các máy chủ?
Grumpy ol 'Bear

1
Bạn có ý nghĩa gì đối với máy chủ? Đây là một phần mềm dòng lệnh có thể chạy trên mọi hệ điều hành.
slhck

Vâng, không. Dòng lệnh không phải là thế mạnh của tôi. Tôi cần một cái gì đó với GUI tiện dụng.
Grumpy ol 'Bear

@DonSalva bạn có thể làm điều đó trong vòng 2 dòng cmd bằng cách sử dụng ffmpeg, ngay cả khi không có sức mạnh
Jet

Câu trả lời:


10

Xin lỗi, bạn sẽ phải sử dụng dòng lệnh. Tôi thực sự nghi ngờ rằng bạn có thể tìm thấy một chương trình GUI để giải quyết vấn đề này.

Bạn chưa chỉ định hệ điều hành nào bạn đang sử dụng. Trên Linux, lệnh sau sẽ thay đổi kích thước tất cả các tệp .png trong thư mục hiện tại. Lưu ý rằng nó sẽ ghi đè lên hình ảnh gốc:

##  bash (Linux, OSX):
for i in *png; do convert "$i" -resize 32x32 "$i"; done
##  on Windows:
for %i in (*png); do convert %i -resize 32x32 %i; done

Lưu ý rằng, đối với dòng Windows, nếu bạn đang sử dụng nó trong một tập lệnh chứ không phải trên dòng lệnh, bạn cần sử dụng %%ichứ không phải %i.


Một lựa chọn khác sẽ là kịch bản GIMP . Kịch bản này sẽ thay đổi kích thước hình ảnh của bạn ( nguồn ):

(define (batch-resize pattern width height)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-scale-full image width height INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

Lưu nó như batch_resize.scmtrong scriptsthư mục của GIMP , sau đó chạy nó như sau:

gimp -i -b '(batch-resize "*.JPG" 604 453)' -b '(gimp-quit 0)'

CẬP NHẬT:

Tôi chỉ tình cờ thấy bài đăng này gợi ý rằng plugin GIMP của David Gatch Bộ xử lý nên làm chính xác những gì bạn muốn. Bài viết nói về Linux nhưng có một liên kết đến phiên bản windows trên trang của plugin.


Xấu của tôi, tôi luôn quên hệ điều hành. Đó là Win7 64 bit.
Grumpy ol 'Bear

Chà, ImageMagick có phiên bản windows và bạn (bằng cách nào đó) cũng có thể sử dụng tập lệnh GIMP trong windows.
terdon

@DonSalva xem câu trả lời cập nhật.
terdon

ImageMagick là một công cụ tuyệt vời cho loại công việc này. Tìm hiểu làm thế nào để sử dụng nó và bạn sẽ thích nó mãi mãi!
Lee Harrison

Tất cả là nhờ @evilsoup vì đã thêm dòng lệnh windows.
terdon

4

Tôi nghĩ rằng công cụ ImBatch có thể giúp bạn với nhiệm vụ của bạn. Hoạt động tốt với Win7 x64 cho tôi. Nó là miễn phí.


Công cụ tuyệt vời, linh hoạt hơn nhiều so với IrfanView và hỗ trợ png với alpha - cảm ơn!
Tomáš Kafka

3

XNConvert có GUI đơn giản và trực quan cho các tác vụ đó.

XnConvert là bộ xử lý hình ảnh hàng loạt đa nền tảng mạnh mẽ và miễn phí, cho phép bạn kết hợp hơn 80 hành động. Tương thích với 500 định dạng. Nó sử dụng mô đun xử lý hàng loạt của XnViewMP

  • xử lý hàng loạt
  • duy trì độ trong suốt (được thử nghiệm với PNG trong suốt )
  • thay đổi kích thước tự động hoặc được xác định trước
  • không cần cài đặt

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


Tôi đã thử điều này và nó không duy trì tính minh bạch (phiên bản Mac). Liệu nó có làm cho loại mô hình được sử dụng lại (tôi đã sử dụng Lanczos như bạn đã làm).
niico

Tự mình làm việc này - sử dụng Bilinear Resampling để thực hiện điều đó. Bạn có thể thấy trong cửa sổ 'Sau' nó sẽ trông như thế nào - nếu khu vực trong suốt có màu đen bạn biết nó sẽ không hoạt động.
niico

@niico Bây giờ tôi đã thử 3 phương pháp lấy mẫu khác nhau, Lanczos cũng vậy. Tất cả đều tạo ra hình ảnh trong suốt. Có thể phiên bản MAC hoạt động theo một cách khác
nixda

Tôi đã thử điều này trên PC và Mac - giống hệt nhau trên cả hai. Hơn nữa - bây giờ tôi nhận thấy việc lấy lại mẫu mà tôi đã làm là lởm chởm như địa ngục và không thể sử dụng được.
niico

2

Theo mặc định, sử dụng FFMpeg là cách ngắn nhất :)
Tải xuống ở đây , đặt nó vào thư mục với các tệp của bạn, mở dòng lệnh, đi đến thư mục của bạn (với cd) và viết vào đó:

mkdir Resized
for %f in (*.png) do ffmpeg -i "%~nxf" -s 32x32 "Resized\%~nxf"

và thay đổi 32x32với kích thước của bạn. Nó sẽ thay đổi kích thước PNG của bạn và đặt nó vào Resizedthư mục.
Điều này sẽ làm công việc mà không cần tập tin hàng loạt. Tuy nhiên nếu bạn muốn đặt cái này trong tập tin bat, hãy viết %%thay cho %.

Hy vọng nó sẽ giúp bạn.


0

Tôi chưa thử ImBatch hoặc XNConvert, những người khác được đề cập ở đây, nhưng đây là một vài gợi ý khác cho bạn:

  • pngquant (một công cụ dòng lệnh. Bản thân tôi, tôi đã sử dụng Windows GUI PNGoo có trên trang)
  • Bộ lượng tử màu (rất nhiều khả năng để điều chỉnh cài đặt để sử dụng các thuật toán phối màu khác nhau, v.v. Tôi chưa bao giờ làm cho nó hoạt động tốt như PNGoo / pngquant, nhưng đó có thể là do kiến ​​thức hạn chế của tôi).
  • TinyPNG.com (dịch vụ web miễn phí có giới hạn 20 tệp, mỗi tệp nhỏ hơn 5MB)

0

Tôi đã gặp vấn đề tương tự nhiều lần và tôi đã cài đặt Photoshop trong hầu hết các lần đó. Vì vậy, tôi kết hợp kịch bản này với nhau bằng cách sử dụng một vài nguồn cảm hứng về mã của người khác.

https://gist.github.com/pixelbacon/7754cba64125b0240504

Sử dụng

  • Cài đặt Photoshop CC hoặc phiên bản mới hơn.
  • Mở tập lệnh trong Photoshop.
  • Một hộp thoại sẽ yêu cầu bạn chọn một thư mục nguồn.
  • Một hộp thoại sẽ yêu cầu bạn chọn một thư mục đích.
  • Một hộp thoại khác sẽ hỏi bạn chiều rộng và chiều cao tối đa.
  • Một hộp thoại khác sẽ hỏi bạn về chiều rộng lý tưởng, sau đó là chiều cao lý tưởng.
  • Đợi trong khi tập lệnh sẽ mở tất cả các tệp PSD hoặc AI bạn có trong thư mục nguồn của mình và lưu chúng dưới dạng PNG-24 trong suốt.
  • Một hộp thoại sẽ cho bạn biết khi nào nó được thực hiện.

Người giới thiệu

Có hơn 2 liên kết để tham khảo, danh tiếng hiện tại của tôi không cho phép tôi đăng thêm nữa. Xem kịch bản gốc khi tài liệu tham khảo được ghi lại.

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.