29Jun

Izmantojot Linux apvalku, PNG attēlu atrašana ir lielāka par x pikseļiem

Kad jūs mēģināt strādāt pie sava vietnes dizaina maiņas, jums ir jārūpējas par attēla platumu savā raksta saturā.Man ir bijuši pazīstami lieli ekrānuzņēmumi lielākajā daļā raksta, ko esmu uzrakstījis, tādēļ, ja es vēlos palielināt sānjoslu, ir svarīgi noskaidrot, kuri attēli būs pārāk plaši, lai tie atbilstu jaunajam dizainam.

Tā kā es esmu programmētājs, man viegli būtu uzrakstīt nelielu lietojumprogrammu, lai to izdarītu, bet tas man lika domāt. .. kāpēc es nevaru to darīt par Linux komandrindu?

Pirmā lieta, ko es sapratu, bija tas, ka PNG attēli parāda izmēra datus, kad palaižat to komandu "file":

$ file image3.png
image3.png: PNG attēlu dati, 613 x 657, 8 bitu / krāsaRGBA, bez starpnozaru

Ļoti noderīga, jo 99% no šīs vietnes attēliem ir PNG formātā.Tātad, tagad, lai to iemeta loģijā visiem failiem manā augšupielādes direktorijā:

$ par f in *. png; do file $ f; veikts

image.png: PNG attēlu dati, 631 x 185, 8 bitu / krāsaRGBA, bez interlāze
image1.png: PNG attēla dati, 631 x 96, 8 bitu / krāsu RGBA, bez interlāze


image10.png: PNG attēla dati, 375 x 395, 8 bitu / krāsas RGBA,interlaced
image11.png: PNG attēla dati, 484 x 241, 8 bitu / krāsas RGBA, bez starpsienu
-slaids-

Tas ir vairāk noderīgi, bet man vajadzētu pull datus uz Excel vai līdzīgu pieteikumulai kārtotu datus, tāpēc es nolēmu izmantot linux "cut" komandu, lai izvelētu tikai platuma kolonnu.

Jūs ievērosiet, ka -f5 parametrs stāsta griešanai, lai ņemtu piekto kolonnu, un -d \ ar atstarpi pēc tam, kad tā stāsta, ka jālieto atstarotājs kā atstarotājs. Slīpsvītra \ raksturs ir aizbēgšanas rakstzīme, kas norāda, ka apvalks izmanto atstarpi kā rakstzīmi, nevis kā atstarpi.

$ par f in *. png; do failu $ f | sagriezti -f5 -d \; veikts

631
631
375
484
-snipped-

Ne visai noderīgs produkts, vai tā ir? Nospiedīsim to, izmantojot ar bash, ja parādīsies, un pēc tam parādīsies tikai faila komandas izlaide, ja platums ir lielāks par 600 pikseļiem.

Paziņojiet `(backtick) zīmes ap" failu $ f |sagriež. .. ", kas norāda, ka komandas iekšpusē" tiks apstrādātas kā viena izlaide un tiek ievadītas if paziņojumā, kur mēs izmantojam -gt( lielāks par).Tāpat ņemiet vērā, ka jums vajadzīgas atstarpes ap abām pusēm no kronšteiniem []

par f in *. png, ja [`file $ f |sagrieziet -f5-d \ -gt 600];tad failu $ f; fi; paveikts

image.png: PNG attēla dati, 631 x 185, 8 bitu / krāsu RGBA, bez interlaced
image1.png: PNG attēla dati, 631 x 96, 8 bitu / krāsa RGBA, bez interlaced
image17.png: PNG attēla dati, 638 x 340, 8 bitu / krāsas RGBA, bez interlāze
image18.png: PNG attēla dati, 608 x 448, 8 bitu / krāsu RGBA, bez interlaced
-snapped-

Tagad mums ir saraksts ar visiem failiem, kuru platums ir lielāks par 600 pikseļiem. Galu galā varat koriģēt "file $ f", lai vienkārši izceltu failu nosaukumus, ja jums vajadzēja tos citur nokopēt vai pārvietot:

for f in *. png; ja [`file $ f |sagrieziet -f5-d \ -gt 600];tad echo $ f; fi; paveikts

image.png
image1.png
image17.png
image18.png
-snipped-

Linux apvalks ir neticami jaudīgs!Šis risinājums nav īsti praktisks visiem, taču ir labi zināt, kā strādāt ar čaulu, lai jūs varētu paveikt šāda veida uzdevumu, kad tas ir nepieciešams.