Decuparea miniaturilor cu add_image_size

23 ian. 2012, 05:19:44
Vizualizări: 22.2K
Voturi: 1

Vreau ca miniaturile de pe o anumită pagină să fie exact 300px × 100px. În prezent, imaginile se micșorează până ating limita de 300 pixeli sau 100 pixeli. Cum pot face ca imaginea să fie decupată exact la 300 × 100 (preferabil fără distorsiunea imaginii).

// functions.php:
if ( function_exists( 'add_image_size' ) ) add_theme_support( 'post-thumbnails' );

if ( function_exists( 'add_image_size' ) ) { 
    add_image_size( 'post-thumb', 620, 207, true );
    add_image_size( 'home-thumb', 220, 180, true );
    add_image_size( 'index-thumb', 300, 100, true );
}
// index.php:
if ( has_post_thumbnail()) the_post_thumbnail('index-thumb');
4
Comentarii

Imaginile care se micșorează trebuie să fie cele încărcate înainte de a specifica aceste dimensiuni? Sau ai probleme și cu încărcările mai recente? Parametrul true de fapt decupează imaginile fără a le denatura.

Hameedullah Khan Hameedullah Khan
23 ian. 2012 15:59:53

Am setat parametrul la true, dar imaginea nu se decupează la 300 pe 100. Se decupează la 300 pe X pixeli sau la Y pixeli pe 100. Oricare dintre opțiuni apare mai întâi.

pope pope
23 ian. 2012 22:57:04

Așa funcționează decuparea în WP. Pentru decuparea exactă la 300x100, verifică soluția de la: http://wpquestions.com/question/show/id/1098. NOTĂ: Nu am testat-o personal.

Hameedullah Khan Hameedullah Khan
24 ian. 2012 04:18:17

Am avut aceleași probleme, am găsit asta și funcționează pentru mine - http://sumtips.com/2011/12/custom-image-sizes-in-wordpress.html

User User
11 oct. 2012 18:10:49
Toate răspunsurile la întrebare 3
0

Consultați intrarea din Codex pentru add_image_size():

<?php add_image_size( $name, $width, $height, $crop ); ?>

Parametrul $crop este cheia:

(boolean) (opțional) Decupează imaginea sau nu. False - Mod de decupare proporțională ușoară; True - Mod de decupare dură.

Implicit: false

Adică:

  • False (implicit): redimensionare în cutie - (redimensionează imaginea în funcție de dimensiunea restrictivă)
  • True: decupare dură - decupează imaginea exact la dimensiunile specificate

Astfel, codul tău ar trebui să funcționeze:

// Adaugă suport pentru temă
add_theme_support( 'post-thumbnails' );

// Înregistrează dimensiuni personalizate pentru imagini
add_image_size( 'post-thumb', 620, 207, true );
add_image_size( 'home-thumb', 220, 180, true );
add_image_size( 'index-thumb', 300, 100, true );

Dacă observi că imaginile tale nu sunt afișate corespunzător, sunt câteva lucruri de verificat:

  • Pentru imaginile adăugate înainte de implementarea acestor dimensiuni personalizate, va trebui să regeneriți thumbnail-urile pentru acele imagini
  • Dimensiunile imaginilor nu vor fi generate pentru imagini care nu sunt cel puțin la fel de mari ca dimensiunile specificate ale unei anumite dimensiuni de imagine. Prin urmare, asigură-te că imaginile tale sunt cel puțin la fel de mari ca cea mai mare dimensiune specificată pentru decuparea dură. (Imaginile redimensionate în cutie nu sunt la fel de restricționate și trebuie să fie cel puțin la fel de mari ca cea mai mică dimensiune a unei anumite dimensiuni de imagine.)
15 nov. 2012 18:36:48
0

Uită-te la acest plugin

  • creează dimensiuni nelimitate pentru imagini (tăiate și netăiate)
  • adaugă dimensiuni în câmpul de selectare a fișierelor media
  • adaugă filtre CSS și animații
  • poate gestiona filigrane
21 mar. 2014 10:36:32
5
-1

Încearcă să schimbi parametrul "ture" în "false". De asemenea, poți elimina instrucțiunile "if" din functions.php dacă nu sunt necesare pentru altceva...

23 ian. 2012 06:12:57
Comentarii

Parametrul true de fapt taie imaginea, dacă îl setezi la false imaginea nu va fi tăiată, ci va fi redimensionată.

Hameedullah Khan Hameedullah Khan
23 ian. 2012 16:00:58

Dacă îl marchez true sau false obțin același rezultat.

pope pope
23 ian. 2012 17:27:02

ai verificat dacă imaginile tale sunt într-adevăr mai mari decât dimensiunile pe care le-ai definit ca thumbnail-uri? și ai încercat să elimini condițiile "if"??

krembo99 krembo99
23 ian. 2012 18:47:15

Am încercat cu imagini mai mari. Același rezultat. Dacă elimin clauzele if, primesc o eroare.

pope pope
23 ian. 2012 21:42:43

poți să spui care este eroarea?

krembo99 krembo99
24 ian. 2012 15:37:22