Bir klasördeki tüm görüntüleri aynı genişliğe nasıl ölçekleyebilirim?


97

Belirli bir klasördeki tüm görüntüleri aynı genişliğe (ancak uygun şekilde ölçeklendirilmiş yüksekliklere göre) ölçeklendirmek istiyorum. Bunu GUI tabanlı veya komut satırı aracı kullanarak nasıl yapabilirim?

Bonus puanlar için, hangi görüntülerin başlangıç ​​genişliklerine göre ölçeklendirilebileceğini sınırlamak mümkündür (yani, yalnızca> x ve / veya genişlik genişliği olan y ölçekleme görüntüleri)?


avconv bunu CLI aracılığıyla yapabilir - Bkz: libav.org/avconv.html#scale-1
Elder Geek

Yanıtlar:


152

Bu imagemagick ile yapmak çok kolaydır . Yazılım Merkezinde kurabilirsiniz. Görüntülerin toplu işlenmesi için bunu öneriyorum.

Toplu yeniden boyutlandırma inanılmaz derecede basit (Ubuntu 11.10 ile test ettim). En boy oranını koruyarak her .jpg dosyasını 200 piksel genişliğe yeniden boyutlandırmak için aşağıdaki komutu kullanın:

$ convert '*.jpg[200x]' resized%03d.png

-set seçeneğini kullanarak dosya adını koruyabilirsiniz. Ör:

convert "images/*.jpg[250x]" -set filename:base "%[base]" "images/new_folder/%[filename:base].jpg"

Daha fazla dosyanız varsa find ile birlikte kullanmalısınız.

find /folder -iname '*.JPG' -exec convert \{} -verbose -set filename:base "%[base]" -resize 1920x1080\> "/folder/images/%[filename:base].JPG" \;

Bu sadece imgelem gücünün yüzeyini çiziyor. Yeniden boyutlandırma sonsuz şekilde ayarlanabilir . Daha gelişmiş yeniden boyutlandırma için bu -resizeseçeneği kullanmanız gerekir .

Yeniden boyutlandırmayı daraltmayı sınırlayabilirsiniz :

$ convert '*.jpg[300x>]' thumb-300-%03d.png

veya büyütme :

$ convert '*.jpg[300x<]' thumb-300-%03d.png

Daha fazla seçenek görmek için geometri belgelerine bakın.


1
Neden png için png?
JohnyTex

3
.Jpg ve .png uzantıları, farklı formatların kullanımını göstermek için sadece bir örnektir.
bandi,

-Set seçeneği hakkında daha fazla bilgi için: imagemagick.org/script/command-line-options.php ; temel olarak, -set <property-name> <value>bir özellik belirler; %<one-character>ve %[<one-or-more-characters>]Imagemagick tarafından değerlerine genişletildi; Çıktı dosya adını programlı olarak belirlemek için kullanılan özelliklerin başlaması gerekir filename:, bu nedenle basegörüntü yolunu içeren özelliği bir özelliğe kopyalamamız gerekir filename:<something>.
marcotama

1
Bu numarayı paylaştığın için teşekkürler, bilmiyordum!
marcotama

2
bilinmeyen resim özelliği "% [base]"
Post Öz

32

GUI için Phatch "tek bir tıklama bin fotoğrafa değer" böyle hızlı bir iş için en iyisi. Zaten Ubuntu deposunda.

sudo apt-get install phatch
  1. Ölçek ekle ve Öğe ekle
  2. Ölçek / yeniden boyutlandırma seçeneklerini ayarlayın
  3. Tasarruf / çıktı seçeneklerini ayarlayın
  4. Çalıştırmak
  5. Giriş klasörünü ayarla
  6. Yürütmek için toplu tıklayın

görüntü tanımını buraya girin görüntü tanımını buraya girin


2
Olumlu bir soru için, söz konusu görevi yerine getirmenin bir örneği iyi olurdu :) Ama bahşiş için teşekkürler, güzel araç!
jaywink

2
Bu benim makinemde işe yaramadı (Ubuntu Mate 16.04). Uygulama açılış ekranında takıldı
Gunith D

1
@GunithDevasurendra, hataları kontrol etmek için komut satırından deneyin. Çözemediyseniz, lütfen başka bir soru yazın ve bu çıktıyı ekleyin.
user.dz

1
Harika bir araç, yıllarca kullandım. Ne yazık ki bakımsız ve mevcut Ubuntu versiyonlarında çalışmıyor. Biri sorunu çözmek için kodu çatallayabilsin.
Diego V,

Fedora'da yukarıdakiyle aynı değildir ve böyle bir işlevi yoktur
Vlad

29

Bunu dene:

sudo apt-get install gimp-plugin-registry

Ardından, Gimp'i açın ve içinde bulunan Batch eklentisini açın Filters > Batch > Batch Process.

InputSekmelerdeki resimlerinizi seçin ve şaşırtıcı şekilde adlandırılmış Resizesekmede Yeniden Boyutlandırma işlemini tanımlayın .

Daha fazla bilgi burada bulunabilir .


21

mogrifyImageMagick araçlarından komutu deneyin .

  • çıktıyı orijinallerden ayırmak için bir yol belirtin
  • genişlik örneğinin altında istenen küçük resim genişliğini veya yüksekliğini verin
  • bu şekilde orijinal dosya ismini saklarsınız :-)

Örnek:

$ mogrify -path small/ -auto-orient -thumbnail 300x *.jpg

1
Bu bence en iyi cevap!
Tom

2
$ mogrify -path small / -resize 300x * .jpg
Iurie Malai

+1 ve dikey veya yatay olarak döndürülmüş bir görüntü için en uzun kenarı yeniden boyutlandırabilirsiniz: stackoverflow.com/a/5694903/227926
therobyouknow


8

Cevaplandı ve kabul edildi (ve ImageMagick'i kullandım) ama bütünlük için ... Bazı temel araçları olan basit bir izleyici isteyen teknik olmayan bir patronum var ve GUI olması gerekiyordu. Onun için gumb'a karar verdim .

Küçük resim görünümünde siz ...

  • Yeniden boyutlandırmak istediğiniz görüntüleri seçin
  • Yeniden boyutlandırma işlevini başlatın (İngiliz anahtarı simgesini> Görüntüleri Yeniden Boyutlandır .. 'ı tıklayın.)
  • Piksellere veya yüzdelere göre yeni bir boyut
  • Bir çıktı klasörü seçin ve yola koyulun.

Yeniden boyutlandırmak için, 16.04'te düzeltilene kadar Phatch'a iyi bir alternatif.
Hastig Zusammenstellen

3

İçin toplu resim boyutlandırma birçok paketler baktı ve nihayet kullanılabilir bir arayüz ile bir tane buldum - converseen . Önemli ayarların kaydırılabilir sol bölmede bir şekilde gizlendiğini keşfettiğinizde, her şey yolunda.
Bunun OP'lerin tüm kullanım durumlarını karşılayıp karşılamadığından emin değilim, ancak imagemagick veya phatch'in ilginç kullanıcı arayüzlerine bakmanız gerekmeyebilir.
İşin garibi, digikam, f-spot, fotoxx veya shotwell gibi fotoğraf yönetimi paketleri, photobucket veya (gag) flickr gibi çevrimiçi hizmetlere yüklemeden önce toplu görüntülerin kopyalanması / yeniden boyutlandırılması gerektiğini fark etmiyor. Bu hizmetler bizim işleri sadece kendi yolumuza göre yapmamızı istiyor , ben de orijinalleri yedekledikleri için onlara güvenmiyorum.

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.