|
#1
| ||||
| ||||
| JPG Resimleri, Resim Dosya Biçimini İyileştirerek Daha Az Yer Tutan Resimler Biçimine Getirme Tarayıcıdan taradığımız ya da internetten çektiğimiz jpeg resimler genellikle gereğinden çok yer tutarlar. Bunları, resim niteliğinden vazgeçmeksizin sıkıştırmak olası. Aşağıdaki yöntemle, bir klasörde bulunun bütün jpg resimlerin dosya boyutunu bir kerede yarı yarıya düşürebiliyoruz. WWW sayfanız varsa, sayfanızdaki resimleri bu yöntemle sıkıştırmanız www sayfanızın yarı sürede açılmasını, daha çabuk görüntülenmesini sağlayacaktır. Eğer isterseniz resim niteliğini de düşürerek www sayfalarınızın çok daha hızlı açılmasını da sağlayabilirsiniz. Çoğu www sayfasında, düşük nitelikli jpg resimlerin gösterilmesi sorun oluşturmaz. Bu yöntem NetPBM paketindeki jpegtopnm ve pnmtojpeg yazılımlarını kullanır. Oldukça kullanışlı olan bu paketi http://netpbm.sourceforge.net/ adresinden edinebilirsiniz. JPG Resimleri Kayıpsız İki Kat Sıkıştırma Aşağıdaki bash betiğini bir dosyaya yazıp ( ben jpgazalt dosya adını kullandım ), dosya yolunuzdaki uygun bir klasöre yerleştirip ( /usr/local/bin 'e örneğin ), çalıştırılabilir dosya biçimine getirdikten ( chmod 755 ile ) sonra resimlerinizin bulunduğu klasöre geçerek bu yeni komutunuzu çalıştırmanız, resimlerinizi iyileştirmeniz (optimize etmeniz) için yeterli: #!/bin/bash # # jpgazalt # # JPG resim dosyalarının boyutunu niteliği koruyarak 2 kat azaltır. # # v1.0 # Temmuz 2004 # İlker Fıçıcılar # http://teknik.ekitap.gen.tr/ # ls *.jpg *.JPG|while read resim do jpegtopnm "$resim" 2>/dev/null |pnmtojpeg --optimize > .gecici 2>/dev/null mv .gecici "$resim" done JPG Resimleri Kayıplı Üç-Dört Kat Sıkıştırma Resim niteliğini biraz düşürerek daha çok sıkıştırmak istersek pnmtojpeg komutuna --quality=... ile nitelik ölçü değerini 75'ten az olacak biçimde verebiliriz. Örneğin --optimize --quality=50 değerleri resim dosya boyutunu üçte birine düşürmek için uygun: #!/bin/bash # # jpgazalt # # JPG resim dosyalarının boyutunu niteliği düşürerek 3 kat azaltır. # # v1.1 # Temmuz 2004 # İlker Fıçıcılar # http://teknik.ekitap.gen.tr/ # ls *.jpg *.JPG|while read resim do jpegtopnm "$resim" 2>/dev/null |pnmtojpeg --optimize --quality=50 > .gecici 2>/dev/null mv .gecici "$resim" done İçeriği Aynı Olup, Dosya Adı Ayrı Olan Dosyaları Teke İndirme Kimi durumlarda, aynı resim dosyası değişik dosya adlarıyla aynı klasörde bulunabilmekte. Bu, birkaç kez yinelenmiş dosyaları bulup sayılarını teke indirerek de resim yığınını gereksiz şişkinlikten kurtarabiliriz. ayniazalt adlı aşağıdaki bash betiğini, /usr/local/bin/ayniazalt dosyasına yazıp chmod 755 /usr/local/bin/ayniazalt komutu ile çalıştırılabilir biçime getirerek resim yığının bulunduğu klasörde ayniazalt diyerek kullanabilirsiniz: #!/bin/bash # # ayniazalt # # 14 Temmuz 2004 # sürüm: 0.2 # İlker Fıçıcılar # http://teknik.ekitap.gen.tr/ # # Bir klasördeki aynı dosyaları siler. # # Silinen dosyalar /tmp/cop klasöründeki çöp kutusuna, # bugünün tarihini taşıyan bir klasöre atılır. # cop="/tmp/cop/" mkdir /tmp/cop kutu=`date +%Y%m%d` kutu="$cop$kutu" mkdir "$kutu" 2> /dev/null chmod 777 "$kutu" echo "Çöp kutusu: $kutu" echo we="sdsdsdsdsdawewewe" ls -Sr|grep -v "^\."|while read qw do er=0 rt=`file "$qw"|cut -f2- -d:` ty=`file "$we"|cut -f2- -d:` if [ "$rt" == "$ty" ];then diff -q "$we" "$qw" > /dev/null if [ $? -eq 0 ];then echo "$we == $qw" echo $? echo ds=`echo "$qw"|grep "(1)"` if [ "$ds" != "" ];then mv "$qw" "$kutu" else mv "$we" "$kutu" fi fi fi we=$qw done Bu betiği sadece resimlerde değil her tür dosyada kullanabilirsiniz. Betik, yinelenen dosyaları elerken öncelikli olarak sonunda "(1)" gibi ekler olanları siler. Silinen dosyaları ise /tmp/cop klasörüne taşır. Bu yazıdaki üç betiği (bash script) aşağıdaki URL'deki zipli dosyada bulabilirsiniz: http://teknik.ekitap.gen.tr/betik/d...zaltma-v1.0.zip ![]() ĢěĆę® mükemmeL deqiLim ama FarkLıyımm ßi oqLum oLana kadaR €n iyiSi ßenim ![]() ßiLgiyi aLip Su$mak oLmaz..! ßi te$eKküR + rep ( cokmu sizce ) teRaziye tıkLayıı veR gaRı ![]() |