Tutoriale WordPress de încredere, atunci când aveți cea mai mare nevoie.
Ghidul începătorului pentru WordPress
Cupa WPB
25 de milioane+
Site-uri web care folosesc plugin-urile noastre
16+
Ani de experiență WordPress
3000+
Tutoriale WordPress de la experți

Cum să transformi imaginile în alb-negru în WordPress

Vă treziți constant comutând între WordPress și un editor foto doar pentru a transforma imaginile în nuanțe de gri înainte de a le încărca? Este un proces anevoios și ineficient să editați fiecare fotografie individual înainte.

Din fericire, prin ani de experimentare cu WordPress, am descoperit o modalitate simplă de a nuanța automat imaginile în timpul încărcării, economisindu-vă timp prețios.

În acest articol, vă vom arăta cum să transformați imaginile în nuanțe de gri în WordPress în timp ce le încărcați pe site-ul dvs., pas cu pas.

Imagini alb-negru în WordPress

Când ar trebui să folosiți imagini alb-negru în WordPress?

Imaginile alb-negru elimină toată informația de culoare, lăsând culorile imaginii să arate doar nuanțe de gri, variind între negru și alb.

În anumite situații, utilizarea imaginilor alb-negru poate fi benefică pentru site-ul dvs. WordPress. De exemplu, îl puteți folosi pentru a îmbunătăți lizibilitatea obiectelor afișate în imagine.

Sau, s-ar putea să doriți pur și simplu să utilizați imagini alb-negru pentru a crea un aspect atemporal și clasic pentru site-ul dvs. web.

Pe de altă parte, imaginile în nuanțe de gri sunt, de asemenea, utilizate frecvent pentru procesarea imaginilor datorită dimensiunii lor mici. Permite dezvoltatorilor să execute operațiuni complexe într-un timp mai scurt.

Acestea fiind spuse, să vedem cum puteți transforma imaginile în alb-negru în WordPress atunci când le încărcați.

Nuanțarea imaginilor la încărcare în WordPress

Când vine vorba de adăugarea de imagini în WordPress, ar trebui să le editați înainte de a le încărca folosind un software de editare foto precum Photoshop și să convertiți imaginile colorate în alb-negru.

Dacă aveți sute sau mii de imagini de încărcat, atunci poate dura mult timp să editați fiecare imagine manual.

Cu toate acestea, le puteți transforma automat în imagini alb-negru la încărcare. Pentru a începe, tot ce trebuie să faceți este să adăugați următorul cod în fișierul functions.php al temei dvs.:

add_filter('wp_generate_attachment_metadata','rb_bw_filter');
   
function rb_bw_filter($meta) {
   
    $path = wp_upload_dir(); // get upload directory
    $file = $path['basedir'].'/'.$meta['file']; // Get full size image
   
    $files[] = $file; // Set up an array of image size urls
   
    foreach ($meta['sizes'] as $size) {
        $files[] = $path['path'].'/'.$size['file'];
    }
   
    foreach ($files as $file) { // iterate through each image size
   
        // Convert image to grayscale credit to http://ottopress.com/2011/customizing-wordpress-images/
   
        list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
        $image = wp_load_image($file);
        imagefilter($image, IMG_FILTER_GRAYSCALE);
        switch ($orig_type) {
            case IMAGETYPE_GIF:
                imagegif( $image, $file );
                break;
            case IMAGETYPE_PNG:
                imagepng( $image, $file );
                break;
            case IMAGETYPE_JPEG:
                imagejpeg( $image, $file );
                break;
        }
    }
    return $meta;
}

O modalitate simplă de a adăuga cod în fișierele temei este prin utilizarea pluginului WPCode pentru WordPress.

Este cel mai bun plugin pentru fragmente de cod care te ajută să rulezi fragmente de cod fără a fi nevoie să editezi manual fișierul functions.php al temei tale. Astfel, nu trebuie să-ți faci griji că îți vei strica site-ul.

WPCode

Mai întâi, va trebui să descărcați și să instalați pluginul gratuit WPCode pe site-ul dvs. Dacă aveți nevoie de ajutor, atunci vă rugăm să urmați ghidul nostru despre cum să instalezi un plugin WordPress.

Notă: Versiunea gratuită a WPCode oferă tot ce aveți nevoie pentru a adăuga cu ușurință cod personalizat în WordPress. Pentru funcționalități mai avansate, cum ar fi o bibliotecă privată de fragmente în cloud, fragmente programate, pixeli de conversie și multe altele, puteți face upgrade la WPCode Pro.

La activare, puteți accesa Fragmente de cod » + Adăugare nou din tabloul de bord WordPress.

Apoi, navigați la opțiunea „Adăugați codul dvs. personalizat (fragment nou)” și faceți clic pe butonul „+ Adăugați fragment personalizat”.

Adăugarea de cod personalizat în WPCode

În continuare, trebuie să selectați „Fragment PHP” ca tip de cod din opțiunile care apar.

Selectați Fragment PHP ca tip de cod

Acum, pe pagina Creare fragment personalizat, introduceți un nume pentru fragmentul dvs. Acesta poate fi orice pentru a vă ajuta să vă amintiți la ce folosește codul.

Apoi, lipiți codul de mai sus în zona „Previzualizare cod”.

Adaugă fragment de cod pentru imagini alb-negru

După ce ați introdus codul, puteți derula în jos la secțiunea „Inserare”.

Aici, puteți lăsa selectată opțiunea „Inserare automată”. Aceasta va insera și executa automat codul pentru dvs.

Metode de inserare a fragmentelor în WPCode

În cele din urmă, reveniți în partea de sus a ecranului și comutați comutatorul de la „Inactiv” la „Activ” și faceți clic pe butonul „Salvează fragmentul”.

Salvați și activați fragmentul de cod personalizat

Apoi, puteți testa codul editând sau adăugând o pagină nouă. Când sunteți în editorul WordPress, faceți clic pe butonul „+” și adăugați un bloc de imagini.

Acum puteți încărca orice imagine pe blogul dvs. WordPress, iar aceasta se va converti automat într-o imagine în nuanțe de gri.

Convertirea imaginilor în nuanțe de gri la încărcare

Sperăm că acest articol v-a ajutat să învățați cum să transformați imaginile în alb-negru în WordPress. Puteți, de asemenea, să consultați ghidul nostru despre cum să adăugați modul întunecat pe site-ul dvs. WordPress și selecțiile noastre de experți pentru cel mai bun software de design web.

Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Dezvăluire: Conținutul nostru este susținut de cititori. Acest lucru înseamnă că dacă faceți clic pe unele dintre linkurile noastre, este posibil să câștigăm un comision. Vedeți cum este finanțat WPBeginner, de ce contează și cum ne puteți susține. Iată procesul nostru editorial.

Cel mai bun instrumentar WordPress

Obține acces GRATUIT la instrumentarul nostru - o colecție de produse și resurse legate de WordPress pe care fiecare profesionist ar trebui să le aibă!

Interacțiuni cu cititorii

17 CommentsLeave a Reply

  1. Sfaturi grozave, aș dori doar să menționez că pentru multe utilizări ar putea fi mai bine să faceți acest lucru pur și simplu prin filtrul CSS, de ex.
    img.bw {
    filter: grayscale(1);
    }
    puteți chiar, de ex. afișa alb-negru în mod implicit și colorat la hover, sau puteți face animație de la gri la culori complete și înapoi, de ex.
    img.bw {
    filter: grayscale(0);
    }

    img.bw.grey { filter: grayscale(1); transition-property: filter; transition-duration: 1s; }

    nici eu nu cred că filtrul wp_generate_attachment_metadata este cel potrivit, care ar trebui utilizat, deoarece este apelat la crearea meta, nu doar la crearea imaginii și face o a doua manipulare a imaginii, dar soluția potrivită ar fi mult mai lungă, așa că înțeleg de ce se face așa.

  2. Funcționează bine, dar la încărcare, WP 4.3 aruncă o eroare în biblioteca media.
    Cred că am aplicat toate remedierile scrise în comentarii, dar totuși apare eroarea.

    codul meu arată așa:

    add_filter(‘wp_generate_attachment_metadata’,’themename_bw_filter’);
    function themename_bw_filter($meta) {
    $time = substr( $meta[‘file’], 0, 7); // <- obține ora corectă a încărcării
    $file = wp_upload_dir( $time ); // <- localizează directorul corect de încărcare
    $file = trailingslashit($file[‘path’]).$meta['sizes']['slide-pic']['file'];
    if( $file ) {
    list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
    }
    $image = wp_load_image($file);
    imagefilter($image, IMG_FILTER_GRAYSCALE);
    switch ($orig_type) {
    case IMAGETYPE_GIF:
    imagegif( $image, $file );
    break;
    case IMAGETYPE_PNG:
    imagepng( $image, $file );
    break;
    case IMAGETYPE_JPEG:
    imagejpeg( $image, $file );
    break;
    }
    return $meta;
    }

  3. Știu că sunt puțin târziu la discuție, dar tocmai am avut aceeași problemă cu o eroare (pe care alții o raportează):

    imagefilter() așteaptă resursă ca parametru 1, șir dat

    Acest lucru se întâmplă atunci când încercați să încărcați o imagine prin intermediul ferestrei modale media în timp ce editați o postare, mai veche decât luna curentă, ceea ce aparent încurcă WordPress-ul în ceea ce privește directorul în care se află imaginea originală și în ce director ar trebui să salveze imaginea în nuanțe de gri.

    Aceasta este soluția:


    <?php
    add_filter('wp_generate_attachment_metadata','themename_bw_filter');
    function themename_bw_filter($meta) {
    $time = substr( $meta['file'], 0, 7); // <- obține ora corectă a încărcării
    $file = wp_upload_dir( $time ); // <- localizează directorul corect de încărcare
    $file = trailingslashit($file['path']).$meta['sizes']['themename-bw-image']['file'];
    list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
    $image = wp_load_image($file);
    imagefilter($image, IMG_FILTER_GRAYSCALE);
    switch ($orig_type) {
    case IMAGETYPE_GIF:
    imagegif( $image, $file );
    break;
    case IMAGETYPE_PNG:
    imagepng( $image, $file );
    break;
    case IMAGETYPE_JPEG:
    imagejpeg( $image, $file );
    break;
    }
    return $meta;
    }

    • @geertvdheide

      Dacă doreați să adăugați suport pentru mai multe dimensiuni, încercați ce folosesc eu:

      if ( function_exists( ‘add_theme_support’ ) ){

      add_theme_support( ‘post-thumbnails’ );

      set_post_thumbnail_size( 50, 50, true );

      add_image_size( ‘medium-thumb’, 660, ”, true );

      add_image_size( ‘large-thumb’, 960, ”, true );

      add_image_size( ‘small-thumb’, 100, ”, true );

      }

      (Înălțimea nu este definită, doar lățimea.)

      ar trebui să adăugați diferitele nume pentru ca funcția să se aplice tuturor:

      [‘medium-thumb’ , ‘large-thumb’ , ‘small-thumb’] în codul de filtrare.

      Apelarea miniaturi în tema dvs. este aceeași ca cea listată în articol:

  4. Mulțumesc pentru partajarea acestui cod! Cu excepția faptului că întâmpin o problemă ciudată atunci când încerc să o implementez. Este legată de dimensiunea imaginii încărcate (dimensiunea în pixeli, adică dimensiunile sale). Am copiat codul literal în fișierul functions.php al temei mele și funcționează de minune cu imagini mai mari decât dimensiunea specificată în apelul add_image_size. Dar când folosesc o imagine mai mică sau egală cu dimensiunea specificată, încărcătorul din WordPress îmi dă erori și nu procesează dimensiunea imaginii (fie din secțiunea media a mediului de administrare, fie dintr-un post sau pagină specifică). Eroarea:

    Avertisment: imagefilter() așteaptă parametrul 1 ca resursă, string dat.

    Scevații în plus în eroare, dar aceasta pare a fi cauza principală. Datele imaginii furnizate funcției imagefilter nu sunt valide sau nu există?

    Aveți idee ce ar putea cauza asta? Singura diferență reală între situația mea și o instalare curată este că am adăugat și câteva alte apeluri add_image_size în alte scopuri pe site-ul meu. Adaug și aceeași dimensiune de două ori (una alb-negru, una normală), dar asta nu pare să fie o problemă cu imaginile mai mari.

    • @GEERTVDHEIDE

      și pentru alții care au nevoie de asta:

      Când scriptul convertește imaginea în alb-negru și fișierul încărcat nu se potrivește cu dimensiunea fișierului, acest lucru face ca scriptul să se defecteze. Pentru a preveni acest lucru, pur și simplu adăugați o condiție rapidă if() pentru a vă asigura că aveți $file.

      $file = trailingslashit($file[‘path’]).$meta[‘sizes’][‘themename-bw-image’][‘file’];
      if( $file ) {
      list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
      ——– remainder of code until ——–
      return $meta;
      }

      Acest lucru va verifica dacă fișierul de dimensiunea solicitată există înainte de a încerca să îl convertească.

      Sper că ajută!

  5. @Otto42 thank you! I had a bit of a hard time, actually and had to undoe it :( will pick it up tomorrow. It’s a good way to mix it up onsite

Lasă un răspuns

Vă mulțumim că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de comentarii, iar adresa dvs. de e-mail NU va fi publicată. Vă rugăm să NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.