komutun sonunda kırp.bmp yazdığınız için isimleri kırp olarak yeniden adlandırıyor, fakat bu işlemi *.jpg’ koşulunu sağlayan birden fazla dosya olduğu için kırp-1, kırp-2 diye adlandırıyor. Her biri orjinal adını korusun derseniz convert işlemini for’un içinde yapabilirsiniz.
Sizin kodunuz için bakacak olursak şu şekilde oluyor:
hedef_dizin="hedef";
mkdir $hedef_dizin;
for file in *.jpg;
do
convert "$file" -crop 1463x1881+35+100 "$hedef_dizin/${file%.jpg}.bmp";
convert "$hedef_dizin/${file%.jpg}.bmp" -resize 133x171 "$hedef_dizin/${file%.jpg}.bmp";
mv "$hedef_dizin/${file%.jpg}.bmp" "$hedef_dizin/$file";
done
kaynak_dizin’deki jpg dosyalarını hedef_dizin’e kopyalar ve istenen işlemleri gerçekleştirir.
Not: “.” şu an bulunduğunuz dizin demektir.
Bu kodu bir sh dosyası içerisine yapıştırıp kullanabilirsiniz veya tek satırda yazarak terminalden çalıştırabilirsiniz.
Teşekkürler, biraz daha uzun yoldan formülleri buldum ama bu çok daha kısa ve kolay.
Bunu da inceleyeceğim bu for konusunu daha iyi öğrenmek için.
Başında elle yapmam gereken işlemleri de kodla yazdırmak fikri aklıma geldi. Bunun için @mustifanci hocamla irtibata geçtik. Üzerinde çalışacağız.
Bitince sh olarak yüklerim buraya inşallah.
Komutların çalışması için imagemagick programının kurulu olması şart mı? Yazdığımız sh dosyasını tamamladık ama açıklama ile paylaşayım dedim. Şartsa ona göre bunu da açıklamaya ekleyeceğim.
Şimdilik google drive’dan link verdim ama google drive bu iş için doğru yer değil ki, kişiler kendi drive hesaplarındaki dosyaları düzenlerlerken silebilirler.
GitHub, GitLab veya AKKP Kod sitelerine de baktığım kadarıyla sanki ücretli siteler. Sürekli bu işle uğraşmayan klasik kullanıcılara gereksiz olur.
Açıkçası forumda eklenebilecek dosya türlerine en azından sh da eklense daha güzel olurmuş.
@edge35 ve @mustifanci’nin yardımlarıyla kodları yazıp sh oluşturduk çok şükür. (Daha doğrusu ben işin mantığını anlattım, onlar kodlarda yardımcı oldular sağolsunlar)
Alttaki linkten sh dosyasını indirip, fotoğrafların olduğu klasöre atmanız ve terminalden çalıştırmanız yeterli.
Hatırlatmalar:
1- Fotoğrafların yanında hedef adlı bir klasör oluşacak ve içine fotoğraflar 133x171 boyutunda, 20-50 kb aralığında olarak, asıl dosyalarla dosya adları aynı olmuş şekilde düzenlenmiş olacak. (Yani e-okula sıkıntısız yüklenebilecek.)
2- Fotoğrafların dikey çekilmiş olduğundan emin olun. Yataysa kodlarda değişiklik yapmanız gerekir.
3- Fotoğrafları boyutlandırırken en sık başımıza gelen çocukların daha şişman ya da daha zayıf görünmesi problemini de çözdük. Bunu yapabilmesi için fotoğrafların kenarlarından az miktarda kırpmalar yapması gerekiyor. Bu yüzden çocukları kadrajda sıfırlamayın, biraz paylı çekin.
Çalıştırmak için:
Öncelikle bilgisayarınızda yüklü değilse aşağıdaki komut ile imagemagick uygulamasını yükleyiniz.
sudo apt-get install imagemagick
Daha sonra sh dosyası ve fotoğrafların klasörün içinde terminal açın.
sudo chmod +x düzenle.sh komutu ile sh dosyasını tanımlayın.
Sonraki işlemlerinizde sadece aşağıdaki kodu çalıştırmanız yeterli.
Elinize sağlık hocam, azminiz vesilesiyle bir ihtiyaç için (çok zor olmadığı halde bugüne kadar yapılmayan) güzel bir ürün çıkmış oldu. Bundan sonra da MEB’de ihtiyacı olanlar için kolaylık olacaktır.
Github, Gitlab, kod.pardus.org.tr hepsi de ücretsiz siteler. Bir hesap açın ve kodunuzu gist veya snippet olarak yükleyin.
Github’ın ücretli kısmı da var ama oraya girmenize gerek yok. Google Drive üzerinden kod paylaşmak pek iyi bir yöntem olmuyor genelde, siz bilirsiniz tabi. kod.pardus.org.tr öneririm.
Hem buraya yazdığınız dosyanın çalışma şeklini anlattığınız yazıyı da eğer kod.pardus.org.tr’de snippet oluşturursanız README kısmına yazabilirsiniz. Daha güzel gözükür.