Anasayfa » nasıl » Linux Kabuğu İle x Pikselden Daha Büyük PNG Resimleri Bulma

    Linux Kabuğu İle x Pikselden Daha Büyük PNG Resimleri Bulma

    Web sitenizin tasarımını değiştirmek için çalışmak istediğinizde, makale içeriğinizdeki resimlerin genişliği ile ilgilenmeniz gerekir. Yazdığım makalelerin çoğunda çok büyük ekran görüntüleri var, bu nedenle kenar çubuğunu artırmak istiyorsanız, hangi tasarımın yeni tasarıma sığmayacak kadar geniş olacağını bulmak çok önemlidir.

    Programcı olduğum için, bunu yapmak için küçük bir uygulama yazmak benim için kolay olurdu, ama düşünmeme neden oldu… neden bunu Linux komut satırında yapamıyorum??

    İlk düşündüğüm şey, üzerlerinde “dosya” komutunu çalıştırdığınızda PNG görüntülerinin boyut verilerini göstermesiydi:

    $ file image3.png
    image3.png: PNG görüntü verileri, 613 x 657, 8 bit / renkli RGBA, titreşimli

    Bu sitedeki resmin% 99'u PNG formatında olduğundan çok kullanışlıdır. Öyleyse şimdi yükleme dizinimdeki tüm dosyalar için bir döngüye atmak için:

    $ f için * .png; $ f; dosya yap

    image.png: PNG görüntü verileri, 631 x 185, 8 bit / renkli RGBA, titreşimsiz
    image1.png: PNG görüntü verileri, 631 x 96, 8 bit / renkli RGBA, titreşimsiz
    image10.png: PNG görüntü verileri, 375 x 395, 8 bit / renkli RGBA, titreşimli
    image11.png: PNG görüntü verileri, 484 x 241, 8 bit / renkli RGBA, titreşimli
    -snipped-

    Bu daha kullanışlıdır, ancak verileri sıralamak için verileri Excel'e veya benzer bir uygulamaya çekmek zorunda kalacağım, bu yüzden sadece genişlik sütununu çıkarmak için linux “cut” komutunu kullanmaya karar verdim.

    -F5 parametresinin kesilene beşinci sütunu almasını ve kesimin sınırlayıcı olarak bir boşluk kullanmasını söyledikten sonra -d \ ile boşluk bıraktığını fark edeceksiniz. Slash \ karakteri, kabuğa boşluk olarak değil, karakteri bir karakter olarak kullanmasını söyleyen bir kaçış karakteridir..

    $ f için * .png; $ f | cut -f5 -d \;

    631
    631
    375
    484
    -snipped-

    Tamamen yararlı değil çıktı, değil mi? Bunu bir bash ifadesiyle itelim ve genişlik yalnızca 600 pikselden büyük olduğunda yalnızca file komutunun çıktısını gösterelim..

    $ F | dosyası etrafındaki '(backtick) işaretlerine dikkat edin. '… komutunun' içindeki komutların tek bir çıktı olarak işleneceğini ve bir -gt (daha büyük) kullandığımız if if ifadesine beslendiğini gösteren bölüm. Ayrıca braketlerin her iki tarafındaki boşluklara ihtiyacınız olduğuna dikkat edin []

    f için * .png; [eğer dosya $ f | -f5-d '-gt600] kesildi; daha sonra $ f; fi; dosya

    image.png: PNG görüntü verileri, 631 x 185, 8 bit / renkli RGBA, titreşimsiz
    image1.png: PNG görüntü verileri, 631 x 96, 8 bit / renkli RGBA, titreşimsiz
    image17.png: PNG görüntü verileri, 638 x 340, 8 bit / renkli RGBA, titreşimli
    image18.png: PNG görüntü verileri, 608 x 448, 8 bit / renkli RGBA, titreşimsiz
    -snipped-

    Şimdi 600 pikselden daha geniş olan tüm dosyaların bir listesi var. Sonunda “$ f” dosyasını, başka bir yere kopyalamanız veya başka bir yere taşımanız gerekirse dosya adlarını ekarte etmek için ayarlayabilirsiniz:

    f için * .png; [eğer dosya $ f | -f5-d '-gt600] kesildi; daha sonra echo $ f; fi; done

    resim.png
    image1.png
    image17.png
    image18.png
    -snipped-

    Linux kabuğu inanılmaz derecede güçlü! Bu çözüm herkes için gerçekten pratik değildir, ancak kabukla nasıl çalışılacağını bilmek iyidir, böylece ihtiyaç duyduğunuzda bu tür işleri başarabilirsiniz..