[ANLATIM] e-Okul için GIMP ile Toplu Fotoğraf Boyutlandırma

Geçen haftalarda tüm okul öğrencilerinin fotolarını Pardus üzerinde boyutlandırmaya başladığımda bunun mutlaka bir yolu olmalı dedim. GIMP ile fotoğrafları tek bir katman grubunda birleştirip birbirine bağlayınca hepsini tek seferde e-Okul’un istediği formata getirmeyi başardım, lakin bu sefer de o kadar fotoğrafı tek tek jpg olarak export etmek birazcık zamanımı alıyordu. Zorlayınca bunun da çözümünü buldum, buradan paylaşayım.

Toplu öğrenci fotoğrafı yükleme işini kolay yapabilmek için aşağıdaki adımları dikkatlice uygulayalım.

A. Fotoğraf Nasıl Çekilmeli? e-Okul Fotoğraf Standardı Nedir?

  • Boyut ve Çözünürlük: 133x171 px ölçülerinde asgari 20Kb, azami 150Kb boyutunda olmalı. Bu nedenle gereksiz yere 20Mp gibi bir çözünürlükle fotoğraf çekmeyin, kendi işinizi uzatırsınız. Benim telefonumun kamera ayarlarında minimum 8Mp’e ayarlayabildiğim için bu ölçülerde çekiyorum.
  • Yüzün Fotoğraftaki Konumu ve Kamera Izgarası: İşinizin kolay olması için fotoğraf çekme kısmına özen gösterin. Kimi öğrenci yakından, kimi uzaktan, kiminin kafası sağda kiminin solda olmasın. Bunu düzgün yapabilmek için kamera uygulamasını açtığınızda ayarlarına (dişli çark resmi) girip kamera ızgarasını aktif hale getirin. Böylece ekranda beliren ızgaranın ortasına öğrencinin başını ortalayın. Her bir öğrencinin fotoğrafını nizami olarak çekin.

B. GIMP Uygulamasına İlgili Eklentinin Kurulması
NOT: Bu eklenti fotoğrafları toplu boyutlandırmak için değil, topluca boyutlandırdığınız fotoları tek tıkla dışarı export etmek içindir. Toplu boyutlandırma işini GIMP’te zaten kolayca yapabiliyoruz.

  • Bu adresten proje klasörünü indiriyoruz [1].
  • Proje klasörü içerisinde bize lazım olanlar export_layers.py dosyası ile export_layers klasörü. Bu dosya ve klasörü alıp ~/.config/GIMP/2.10/plug-ins klasörü içerisine yapıştırıyoruz. (Eğer .config klasörünü göremiyorsanız Ctrl+H tuş kombinasyonunu kullanabilirsiniz.)
  • sudo nano /usr/lib/gimp/2.0/interpreters/pygimp.interp komutunu uyguluyoruz. Açılan metin editörüne sırasıyla aşağıdaki satırları ekliyoruz [2].
python=/usr/bin/python2.7
/usr/bin/python=/usr/bin/python2.7
:Python:E::py::python:
  • Ctrl+O diyerek dosyayı kaydedip, Ctrl+X diyerek çıkış yapıyoruz.
  • Uç Birim’i tekrar açıp aşağıdaki komutları sırasıyla uyguluyoruz [3]. (Komple kopyala-yapıştır yapıp Enter’la)
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-6_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gimp/gimp-python_2.10.8-2_amd64.deb
wget http://ubuntu.cs.utah.edu/ubuntu/pool/universe/p/pycairo/python-cairo_1.16.2-2ubuntu2_amd64.deb
wget http://mirrors.cat.pdx.edu/ubuntu/pool/main/libf/libffi/libffi7_3.3-4_amd64.deb
wget http://lug.mtu.edu/ubuntu/pool/universe/p/pygobject-2/python-gobject-2_2.28.6-14ubuntu1_amd64.deb

sudo apt install gimp gimp-plugin-registry gimp-gmic

sudo dpkg -i libffi7_3.3-4_amd64.deb
sudo dpkg -i python-gobject-2_2.28.6-14ubuntu1_amd64.deb
sudo dpkg -i python-cairo_1.16.2-2ubuntu2_amd64.deb
sudo dpkg -i python-gtk2_2.24.0-6_amd64.deb
sudo dpkg -i gimp-python_2.10.8-2_amd64.deb

sudo apt --fix-broken install

NOT: Hata alırsanız aldırış etmeyin, çünkü ben de öyle yaptım. :grinning:

  • Sisteminizi yeniden başlatın ve GIMP’i açın. Dosya menüsü altında “Export Layers” isimli yeni bir seçenek çıkmış olmalı. Toplu boyutlandırma yaptığımız öğrenci fotoğraflarını bu menü ile tek seferde export edeceğiz. Şimdi uygulamaya geçelim. :wink:

C. GIMP ile Toplu Fotoğraf Boyutlandırma

Son olarak; WhatsApp’tan aldığınız görüntü kalitelerini WhatsApp otomatik olarak düşürdüğü için, küçültme yaptığınızda yüksek ihtimal 20Kb’ın altında olacaktır. Direkt olarak kendi çektiğiniz fotoları bilgisayarınıza atıp kullandığınızda iyi sonuçlar alırsınız. Eğer WhatsApp’tan size fotoğraf atıyorlarsa, belge olarak göndermelerini isteyin.

KAYNAKLAR

  1. gimp-plugin-export-layers/README.md at master · khalim19/gimp-plugin-export-layers · GitHub
  2. Installation | Export Layers
  3. https://discourse.ubuntu.com/t/gimp-woes-in-20-04/15828/14
8 Beğeni

Emeğinize sağlık güzel bir eğitim olmuş ancak bunun için çok daha basit bir uygulama var. XnConvert

wget https://download.xnview.com/XnConvert-linux-x64.deb

sudo gdebi XnConvert-linux-x64.deb

Yükleme bittikten sonra menüden ulaşabilirsiniz.

Ayarlar kısmından istediğiniz çözünürlüğü girebilirsiniz.

Hocam bu kısımla ilgili bir ek de ben yapayım. Bu fotoğrafları önce bmp yapar, sonra adlarını jpg olarak değiştirirseniz, bmp resimler daha yüksek boyutta olduğundan o problem de çözülmüş oluyor.

BMP’yi jpg yapma işi de resimlerin olduğu klasörde terminal açıp rename komutu kullanarak şu şekilde rahatça yapılabilir: rename 's/.bmp/.jpg/' *
rename komutu sizde yüklü değilse şu komutla rahatça kurabilirsiniz: sudo apt install rename -y

2 Beğeni

Uğraşınız ve paylaşımınız için teşekkürler bu konuda benimde bir tavsiyem olacak, bilişim teknolojileri rehber öğretmeni olarak çalışıyorum ve zaman zaman benimde e-okul foto güncellemesi yapmam gerekiyor. Eğer fotoğrafları kendim çekecek isem e-okul foto isimli uygulama ile tek seferde yapabiliyorum. Uygulama telefon üzerinden otomatik olarak boyutlandırma yapıyor ve yüklemeye hazır hale getiriyor programdan çok memnun kaldım. https://play.google.com/store/apps/details?id=com.redleon.eokulfoto&gl=TR linkini paylaştım isteyen telefonuna kurabilir.

Fakat bir başkası fotoğraf çekmiş ve size vermiş ise konuda bahsi geçen işlemler ile gimp üzerinden boyutlandırma yapılabilir.

1 Beğeni

Öneri için çok teşekkürler, az önce test ettim. Çok basit ve etkili bir uygulama. Okul web sitesine haber eklerken fotoğraf atmam gerektiğinde toplu küçültme yapmak için bunu kullanabilirim. Böyle birşey arıyordum, önermeniz çok iyi oldu. Fakat öğrenci fotoları e-Okul standardına (133x171, min 20Kb, max 150Kb) dönüştürmek için pek kullanışlı değil (Belki de ben henüz kolay yolunu bulmadım).

GIMP’teki seçim aracı ile 133x171’lik bir seçim alanı oluşturup bu alanı dilediğiniz yere (kolayca öğrencinin yüz bölgesine doğru) sürükleyerek, en boy oranını koruyup alanı büyültebilmek e-Okul stardardını yakalayabilmek adına çok iyi bir avantaj.

Bende olmadı hocam. Eklenti kuruldu ama çalışmadı. Sizdeki o seçenekler gelmedi.

Bunu da uyguladınız mı? Uzak bağlantı yapalım isterseniz

Sinan hocamla özelden görüştük, uzaktan erişimle uğraştık ama eklenti çalışmıyor. Sayın forum yöneticileri. Nasıl çözülebilir bu durum?

Uyguladım hocam. Yine de yok.

Olabilir. Özelden yazıyorum size.

XnConvert kullanımı ile ilgili belge hazırladım aşağıdaki bağlantıdan ulaşabilirsiniz. Boyutlandırma sıkıştırma işlemleri çok kolay ve farklı betikleri kaydetme seçeneğide sunuyor.

XnConvert Kullanımı

1 Beğeni

Hazırladığınız Xconvert belgesini okuduğum kadarıyla şöyle bir eksik gördüm. Bu arada meb filtresine takıldı. Okuldaki bilgisayardan okuyamadım, telefondan okudum. :smiley: Daha doğrusu onun çözümü var mı, onu da sormuş olayım:

Diyelim veliler bize whatsapp üzerinden resimleri gönderdi. Haliyle her resim farklı telefondan farklı ölçülerle çekildi. Bizim bu resimlerde hem en boy oranını korumamız ve resmi bozmamamız lazım. Hem de her resimden kendi ölçüsünde farklı miktarlarda kırpma yapmamız lazım.

Örneğin: e-okul resimleri 133x171 olması gerektiğinden;
Gelen resim 135x175 ise bundan 2x4 oranında kırpma yapması gerekir.
Gelen resim 140x190 ise bundan 7x9 oranında kırpma yapması gerekir.

Farklı ölçülerde fotoğraflarla dolu bir klasördeki resimleri düzenleme Xconvert ile yapılabiliyor mu?

Hocam Son bölümde zaten o anlatılıyor. Birden fazla betik tanımlayıp kaydedebiliyorsunuz. Bendeki resimler farklı boyutlarda ve onları tek bir boyut olarak ayaladı. Ancak sizdeki olay farklı mı anlamadım. Deneyin mutlaka XnConvert üzerinde çözüm vardır, zaten bu işler için düzenlenmiş.

Hocam komutları birleştirdim, bütün komut ve yapılması gerekenleri yapmak için aşağıdaki komutları kopyalayıp terminale yapıştır demek yeterli… sh halini de size atıyorum özelden.

Komutlar daha da kısaltılıp birleştirilebilirdi ama, uygulayan benim gibi acemiyse adımları da tek tek görsün diye uzun uzun yazdım. :smiley:

sudo apt install wget -y;

wget https://github.com/khalim19/gimp-plugin-export-layers/archive/refs/heads/master.zip;

unzip master.zip;

mv ~/gimp-plugin-export-layers-master/export_layers/ ~/.config/GIMP/2.10/plug-ins;
mv ~/gimp-plugin-export-layers-master/export_layers.py ~/.config/GIMP/2.10/plug-ins;

rm -r ~/gimp-plugin-export-layers-master;
rm ~/master.zip;

sudo bash -c 'echo -e "python=/usr/bin/python2.7\n/usr/bin/python=/usr/bin/python2.7\n:Python:E::py::python:" >/usr/lib/gimp/2.0/interpreters/pygimp.interp'

wget http://old-releases.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-6_amd64.deb;
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gimp/gimp-python_2.10.8-2_amd64.deb;
wget http://ubuntu.cs.utah.edu/ubuntu/pool/universe/p/pycairo/python-cairo_1.16.2-2ubuntu2_amd64.deb;
wget http://mirrors.cat.pdx.edu/ubuntu/pool/main/libf/libffi/libffi7_3.3-4_amd64.deb;
wget http://lug.mtu.edu/ubuntu/pool/universe/p/pygobject-2/python-gobject-2_2.28.6-14ubuntu1_amd64.deb;

sudo apt install gimp gimp-plugin-registry gimp-gmic -y;

sudo dpkg -i libffi7_3.3-4_amd64.deb -y;
sudo dpkg -i python-gobject-2_2.28.6-14ubuntu1_amd64.deb -y;
sudo dpkg -i python-cairo_1.16.2-2ubuntu2_amd64.deb -y;
sudo dpkg -i python-gtk2_2.24.0-6_amd64.deb -y;
sudo dpkg -i gimp-python_2.10.8-2_amd64.deb -y;

sudo apt --fix-broken install -y;

rm ~/python-gtk2_2.24.0-6_amd64.deb;
rm ~/gimp-python_2.10.8-2_amd64.deb;
rm ~/python-cairo_1.16.2-2ubuntu2_amd64.deb;
rm ~/libffi7_3.3-4_amd64.deb;
rm ~/python-gobject-2_2.28.6-14ubuntu1_amd64.deb;
1 Beğeni

O zaman bunu bir deneyeyim yarı yıl tatilinde. Sonucu da yazarım. :+1: