JPEG optimizasyonu için araçlar? [kapalı]


114

Derleme ortamımıza entegre edebileceğim JPEG'leri otomatik ve kayıpsız bir şekilde optimize etmek için herhangi bir araç (tercihen komut satırı) biliyor musunuz? PNG'ler için şu anda PNGOUT kullanıyorum ve genellikle yaklaşık% 40 bant genişliği / görüntü boyutu tasarrufu sağlıyor.

En azından, JPG'lerden meta verileri çıkarabilen bir araç istiyorum - Bir fotoğraftan küçük resim yapmaya çalıştığım ve bunu 34 kB'den küçük alamadığım garip bir durum fark ettim. Daha fazlasını araştırdıktan sonra, EXIF ​​verilerinin hala görüntünün bir parçası olduğunu ve meta verileri kaldırdıktan sonra küçük resmin 3 kB olduğunu buldum.

Ve bunun ötesinde - JPG'leri kayıpsız bir şekilde daha da optimize etmek mümkün mü? PNG iyileştirici farklı sıkıştırma stratejilerini, Huffmann kodlamasının rastgele başlatılmasını vb. Dener.

Tasarrufların çoğunun JPEG kalite parametresinden geldiğinin ve bunun oldukça öznel bir ölçü olduğunun farkındayım. Ben sadece bir oluşturma adımı olarak çalıştırılabilen ve kayıpsız bir şekilde görüntülerden birkaç baytı sıkıştıran bir araç arıyorum.


EXIF kaldırılmadan önce optimize edilmiş bir JPG'de yaklaşık 10KB değerinde EXIF ​​olduğunu söylüyorsunuz?!?!?! İçinde ne olduğunu merak ediyorum!
netrox

Bu fotoğrafla ilgili her küçük ayrıntı (pozlama, deklanşör süresi vb.)
Dahil

@netrox chris166 Bu ayrıntılar fazla yer kaplamaz, çok yer kaplayan şey önizlemedir (ikili veri).
Ariel

1
Aşağıda listelenen yardımcı programları listeleyen iki ilginç karşılaştırma makalesi: JPEG Kayıpsız Sıkıştırma Araçlarının Karşılaştırması, Haziran 2014 ; JPEG optimizasyon araçları karşılaştırması, Şubat 2013 .
dma_k

@Ariel: ICC profili de geniş bir yer kaplar. 500 KB'nin üzerinde ICC profili ikili verisi gördüm.
saurabheights

Yanıtlar:


68

Kayıpsız işlemler için libjpeg kullanıyorum. İstediğiniz her şeyi yapabilen bir komut satırı aracı jpegtran içerir. Komut satırı seçeneği ile -copy nonetüm meta veriler çıkarılır ve -optimizeHuffmann sıkıştırmasının kayıpsız bir optimizasyonunu yapar. İle görüntüleri aşamalı moda da dönüştürebilirsiniz -progressive, ancak bu uyumluluk sorunlarına neden olabilir (bunun hakkında daha fazla şey bilen var mı?)


5
Vay canına, bu umut verici görünüyor. İlgilenen varsa, Windows için indirme gnuwin32.sourceforge.net/packages/jpeg.htm
chris166

Ben bunun için gidiyorum. Aşamalı modda arka plan resmimi 62 kB'den 49 kB'ye düşürür. Başka bir görüntü (27 kB) 23 kB'ye düşürüldü. Bu, kalite kaybı olmadan% 15-20 tasarruf demektir!
chris166

2
progresif, temelde her şeyde iyi çalışır, tek dezavantajı, kodu çözmek için daha fazla CPU kullanmasıdır (önemli olacak kadar fazladan değil).
Ariel

1
progresif, genellikle 9k'den küçük dosyalar için taban çizgisinden daha büyük olabilir
Collin Anderson

3
Progressive'in kodunu çözmek için çok daha fazla belleğe ihtiyacı var. Düzenli jpeg'ler yayınlanabilir: sadece küçük bölümlerde kod çözmeniz gerekir. Aşamalı bir jpg kodunu çözmek için, sıkıştırılmış görüntünün tamamını bellekte tutmanız gerekir.
jcupitt

72

MozJPEG dahil bulabildiğim ve Huffman tablolarını, aşamalı taramaları optimize eden ve (isteğe bağlı olarak) görünmez meta verileri kaldıran tüm görüntü optimizasyon araçları için bir GUI yazdım .jpegoptim

ImageOptim onu ​​sıkıştırıyor

Mac'iniz yoksa , herhangi bir platformda çalışan temel bir web arayüzüm de var .


5
Mükemmel! Bir Flattr düğmesine ihtiyacınız var efendim. Veya Gittip'e katılın.
Thilo

2
ImageOptim ve ImageAlpha harika!
Jon z

Harika bir araç - küçük öneri. Neden JPEGoptim'i% 80 kalitesiyle - büyük arkaplan resimleri ile sınırlandırın - genellikle% 60'a veya daha düşük bir değere gitmek istersiniz. thx
niico

EXIF verilerini neden kaldırmalıyım? : /
Adrien

@AdrienBe 1. Gizlilik. İnternetteki herkesin GPS konumunuzu bilmesini istemeyebilirsiniz. 2. çünkü Photoshop'tan kaydedilen dosyalarda dosyalara gömülü megabaytlarca XML çöpü olabilir .
Kornel

12

[YALNIZCA WINDOWS]

RIOT (Radikal Görüntü Optimizasyon Aracı) Bu, bulduğum en büyük görüntü optimizasyon aracı!

http://luci.criosweb.ro/riot/

Alt örnekleme yoluyla 800KB'ye kadar kolayca 10MB görüntü elde edebilirsiniz. PNG, GIF ve JPEG'i destekler. Hatta bağlam menülerine entegre olur, böylece resimleri doğrudan oraya gönderebilirsiniz. Döndürmenize, yeniden boyutlandırmanıza, belirtilen KB'lere sıkıştırmanıza ve daha fazlasını yapmanıza olanak tanır. Ayrıca GIMP, IrfanView ve diğer şeyler için eklentileri vardır.

Ayrıca, kendi programlarınıza veya java script / c ++ programınıza dahil etmek istiyorsanız bir DLL de mevcuttur.

Diğer bir alternatif ise http://pnggauntlet.com/ PNGGAUNTLET sonsuza kadar sürer ama oldukça iyi bir iş çıkarır.

[YALNIZCA WINDOWS]


7
Uyarı: RIOT güzel görünüyor ama TuneUp'ı kuruyor ve size sormadan bok yapıyor, .. Bunu Kötü Amaçlı Yazılım olarak sınıflandırıyorum.
Daniel W.

1
@DanFromGermany haklı. İncelemelere buradan bakın: download.cnet.com/RIOT/3000-12511_4-10911908.html#summaryList
RNickMcCandless

1
Yakın zamana kadar hiç olmadı.
Ben

Kötü amaçlı yazılım uyarısı! Chrome indirme yöneticisi
RIOT'un

8
Bilginize: RIOT için herhangi bir kötü amaçlı yazılım veya yükleyici içermeyen taşınabilir bir .zip dosyası var. Sadece indirilenler sayfasında aşağı kaydırın. luci.criosweb.ro/riot/download
Goyuix

12

JPEGmini adlı yeni bir hizmet inanılmaz sonuçlar üretir. Sadece çevrimiçi olması ne yazık. Düzenleme : Artık Windows ve Mac için kullanılabilir


Artık kullanılabilir bir Mac uygulamamız var (açıklama: geliştirme ekibindeyim)
DanJ

4
Yazar olup olmadığını bilmiyorum ama bu uygulama kullanıcıları yanıltıyor. Sıkıştırma miktarını algılamak için jpegquality.c dosyasını "mini" görüntülerinde çalıştırırsanız ve ardından orijinalleri aynı kalitede imagemagick ile sıkıştırırsanız => aynı sonuçları, her iki görüntüde de aynı JPEG yapıları elde edersiniz. Imagemagick açık kaynak kodlu olabilir, ancak bu onu kullanmanıza izin vermez ve sonra yeni bir sıkıştırma teknolojisi geliştirdiğinizi iddia etmez
güzel göt

@onetrickpony: Onlara hiçbir şekilde bağlı değilim.
Eduardo Molteni

@niceass JPEGmini'nin ImageMagick kodunu kullandığını nasıl anlarsınız? Kalite faktörünün IM'den çıktının aynı olduğunu bilmek kanıt değildir. Tahminim, görüntüyü kalite faktörlerini azaltarak, belki biraz filtrelemeyle yeniden sıkıştırıyorlar ve ne zaman duracaklarına karar vermek için bazı kalite ölçütleri kullanıyorlar.
koan

En son JPEGmini'yi daha önce ImageMagick'ten dışa aktardığım bir görüntü üzerinde çalıştırdım ve JPEGmini'nin zaten üzerinde çalıştırıldığı bildirildi - bunu yaptığımı hatırlamıyorum. Jpegtran -optimize -copy none öğesini aynı görüntü üzerinde çalıştırmak, boyutu 12 KB azalttı.
koan

10

Yukarıdaki önerileri denedim - kişisel olarak kayıpsız sıkıştırmanın peşindeydim.

Örnek resmimin orijinal boyutu 67.737 bayttı.

Kraken.io kullanarak 64.718'e düştü, jpegtran kullanarak 64.718'e düştü, yahoo smush-it kullanarak 61.746'ya düştü imagemagick (-strip) kullanarak 65.312'ye düştü.

Smush.py seçeneği umut verici görünüyor, ancak yükleme benim için hızlı bir şekilde yapamayacak kadar karmaşıktı

jpegrescan da umut verici görünüyor, ancak görünüşe göre unix ve Windows kullanıyorum

jpegmini kayıpsız DEĞİLDİR, ancak farkı anlayamıyorum (22.172'ye kadar)

plinth'in Altrasoft jpegstripper uygulaması Windows 7'de çalışmıyor

jpegoptim pencere değil - benim için iyi değil

Riot (kaliteyi% 100'de tutarak) 63.416'ya düşürdü ve kroma alt örneklemesi yüksek olarak ayarlandığında 61.912'ye düştü - Bunun kayıpsız olup olmadığını bilmiyorum ama orijinalinden daha hafif görünüyor .

Yani kararım yahoo smushit, eğer kayıpsız olması gerekiyorsa


jpegrescan, inatçıysanız Windows üzerinde çalışır. Büyü gibi boyutu küçültür (kalite kaybı olmadan% 5-15), ki bu şaşırtıcı, çünkü yalnızca aşamalı tarama sıralaması AFAIK'i yeniden sıralıyor (aynı şeyi diğer programlarda da fark edebilirsiniz, dosyalar bazen Photoshop'ta marjinal olarak küçülüyor) görünürde bir neden olmadan farklı sayıda tarama seçerseniz). Ayrıca, x264'ü yapanlardan biri tarafından yapıldı, sıkıştırma alanında çok iyi.
Camilo Martin


7

ImageOptim gerçekten kaygan. Yazar tarafından yayınlanan komut satırı seçeneği GUI'yi dolduracak ve ilerlemeyi gösterecektir. Optimizasyon ve progresif hale dönüştürmek için jpegtran'ı kullandım, daha sonra ilerleyen optimizasyonlar ve diğer dosya türleri için ImageOptim kullandım.

Komut dosyası kodunun yeniden kullanımı da bu forumda bulundu (tüm dosyalar yerinde değiştirildi):

jpegtran

for file in $(find $DIR -type f \( -name "*.jpg" -or -name "*.jpeg" -or -name "*.JPG" \)); do
    echo found $file for optimizing...
    jpegtran -copy comments -optimize -progressive -outfile $file $file
done

ImageOptim

for file in $(find $DIR -type f \( -name "*.jpg" -or -name "*.png" -or -name "*.gif" \)); do
do
    echo found $file for optimizing...
    open -a ImageOptim.app $file
done

4

Birinin bakması durumunda, Yahoo'nun Smush.it'inin çevrimdışı bir sürümünü yazdım. Pngs, jpgs ve gif'leri (animasyonlu ve statik) kayıpsız bir şekilde optimize eder:

http://github.com/thebeansgroup/smush.py


İyi çalışıyor ancak png sıkıştırmasıyla ilgili bir sorun var :(

4

Varsayılan olarak jpeg dosyalarını kayıpsız bir şekilde optimize edecek jpegoptim'i kullanabilirsiniz . --strip-allSeçeneği tüm ekstra gömülü bilgi şeritler. Ayrıca --max, çok yüksek bir kalite ayarı ile kaydedilmiş görüntüleriniz olduğunda yararlı olan, örn. İçin gerekli olmayan bir kayıp modu da belirleyebilirsiniz . Web içeriği.

Jpegtran ile benzer optimizasyon elde edersiniz (OutOfMemory'nin cevabına bakın) ancak jpegoptim aşamalı jpeg'lere kaydedemez.


4

JPEG'leri, PNG'leri, GIFS'leri, animasyonlu GIF'leri ve hatta çizgi roman arşiv içeriğini (CBR / CBZ) optimize etmek için harici programlar kullanan 'picopt' (ImageOptim'e benzer) adlı bir komut satırı aracı yazdım.

Bu, jpegrescan, jpegtran, optipng, gifsicle, vb. Gibi araçlar yüklediğiniz OS X veya Linux sistemlerinde homebrew ile kullanım için uygundur.

https://github.com/ajslater/picopt


Bunun bir Windows versiyonu var mı?
starbeamrainbowlabs

posix bağımlılıklarını cygwin gibi bir windows ortamına kurabilirseniz, kurabilirsiniz. Yine de ilk test eden siz olursunuz.
AJ Slater

3

Ben de ImageMagick'i tavsiye ederim . EXIF meta verilerini kaldırmak için bir komut satırı seçeneğine sahiptir

mogrify -strip image.jpg

Aynı şeyi yapan birçok başka araç var.

JPEG'leri yeniden sıkıştırmaya gelince, yapmayın. JPEG'ler başlangıçta kayıplıdır, bu nedenle herhangi bir yeniden sıkıştırma biçimi yalnızca görüntü kalitesine zarar verir. Bununla birlikte, kayıpsız olarak kodlanmış görüntüleriniz varsa, bazı kodlayıcılar diğerlerinden daha iyi iş çıkarır. Photoshop ile yapılan JPEG'lerin, karmaşık nedenlerden dolayı ImageMagick ile kodlandıklarından (aynı dosya boyutuna rağmen) tutarlı bir şekilde daha iyi göründüğünü fark ettim . Dahası (ve bu sizinle ilgili), en azından Photoshop'un JPEG'leri optimize edilmiş olarak kaydedebileceğini biliyorum, bu da birkaç KB tasarruf etmeyi umursamadığınız bazı şeylerle uyumluluğu düşürdükleri anlamına gelir. Ayrıca, katıştırılmış herhangi bir renk profiliniz olmadığından emin olun ve bir kaç KB daha kaydedebilirsiniz.


İlginç. Her zaman% 90 kalitenin tüm görüntü araçlarında aynı olduğunu düşündüm. Photoshop, optimize edilmiş DCT katsayılarını kullanan tek araç mı?
chris166

1
Photoshop ve Imagemagick'te aynı görüntüleri kaydetmeyi deneyene kadar% 90'ın çeşitli araçlarda aynı olacağını düşündüm. Photoshop'ta Web için Kaydet uygulamasının yaklaşık% 70'inin Imagemagick'teki% 92 ile aynı boyutta dosyalar oluşturduğunu, ancak Photoshop dosyalarının belirgin şekilde daha kaliteli olduğunu buldum. Diğer araçların bunu nasıl yaptığı hakkında hiçbir fikrim yok.
David Johnstone

ImageMagick'in PHP sürümünü kullanarak EXIF ​​meta veri sıyırma işlemini nasıl gerçekleştireceğinizi biliyor musunuz?
Sonny

@Sonny Pek sayılmaz, ancak bu işlev ilginizi çekebilir: php.net/manual/en/function.imagick-stripimage.php
David Johnstone

Teşekkürler David, bulduğum şey buydu. İşte başlığım: stackoverflow.com/questions/2540068
Sonny

2

Ben kullanarak öneriyoruz http://kraken.io Bu sizin PNG optimize ve JPEG daha iyi smush.it olduğundan daha uzak dosyaları olacak ultra hızlı Webapp bu.


2

JpegOptim'i kullanmanızı tavsiye ederim, ücretsiz ve gerçekten güzel, kaliteyi, istediğiniz boyutu belirtebilirsiniz ... Ve komut satırında kullanımı kolaydır.

jpegoptim


1

Şeffaflığa yakınlık için bunu tavsiye edebilir miyim:

convert 'yourfile.png' ppm:- | jpeg-recompress -t 97 -q veryhigh -a -m smallfry -s -r -S disable - yourfile.jpg

O kullandığı imagemagick 's convertve jpeg-recompressgelen jpeg-arşivde .

Her ikisi de açık kaynaklıdır ve Windows, Mac ve Linux üzerinde çalışır. Farklı kalite beklentileri için yukarıdaki seçeneklerde ince ayar yapmak isteyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.