Öne çıkan yayın küçük resmi nasıl ölçeklendirilir?


11

Durum şudur: youtube / vimeo küçük resimlerini yazı özellikli resim olarak otomatik olarak alıp ayarlamak için Video Thumbnails eklentisini kullanıyorum. Sorun, varsayılan youtube / vimeo küçük resim boyutlarının tema ana içerik genişliğimden biraz daha küçük olması.

Yani ihtiyacım olan şey onları büyütmek. Medya Kitaplığı'na gidersem, her görüntüyü manuel olarak düzenleyebilir, sonra tam genişliğimi ayarlayabilirim ve WordPress bunu doğru şekilde ölçeklendirir (kalitenin biraz daha kötü olduğunu umursamıyorum). Peki WP'nin her resim yüklendiğinde bunu otomatik olarak yapmasının bir yolu var mı?

Bu benim tanımlanmış resim add_image_size('post-full', 688, 320, true);boyutum : Vimeo başparmak boyutu 640x320.


1
İşte levi çözümüne ve jackrugile düzeltmelerine dayanarak küçük resimleri yükseltmek için yazdığım bir eklenti. wordpress.org/support/plugin/thumbnail-upscale
khromov

Yanıtlar:


20

Görüntüleri ölçeklendirmek için yerel Wordpress image_resize işlevini kullanabilirsiniz. Wordpress , varsayılan kırpma ayarlarının üzerine yazmak için kullanabileceğiniz " image_resize_dimensions " adlı bir kanca sunar . İşte ölçeklendirmeyi destekleyecek değiştirilmiş bir işlev:

function image_crop_dimensions($default, $orig_w, $orig_h, $new_w, $new_h, $crop){
    if ( !$crop ) return null; // let the wordpress default function handle this

    $aspect_ratio = $orig_w / $orig_h;
    $size_ratio = max($new_w / $orig_w, $new_h / $orig_h);

    $crop_w = round($new_w / $size_ratio);
    $crop_h = round($new_h / $size_ratio);

    $s_x = floor( ($orig_w - $crop_w) / 2 );
    $s_y = floor( ($orig_h - $crop_h) / 2 );

    return array( 0, 0, (int) $s_x, (int) $s_y, (int) $new_w, (int) $new_h, (int) $crop_w, (int) $crop_h );
}

Şimdi bu işlevi şu şekilde kancalayın:

add_filter('image_resize_dimensions', 'image_crop_dimensions', 10, 6);

Tamamlandığında, görüntüleri gerektiği gibi yukarı veya aşağı ölçeklendirmek için image_resize işlevini kullanabilirsiniz .

$cropped_image = image_resize($image_filepath, $width, $height, true);

Kırpılan görüntüyü oluşturmaya çalıştığımda ancak bu yöntemi kullanıyorum ancak hatayı alıyorum: Image Editor Save Failed - herhangi bir fikir?
Felix Eve

Wordpress 4.1.5 ile Temmuz 2015'te hala harika çalışıyor. Yayınlarımın Öne Çıkan Görüntüleri için küçük resimler sağlamak üzere tam da ihtiyacım olan şey.
Mark Rummel

Kırpma konumu seçeneğini desteklemek isteyenler için, işlevin geri dönüşünden hemen önce aşağıdaki kodu ekleyin:if( is_array( $crop ) ) { if( $crop[ 0 ] === 'left' ) { $s_x = 0; } else if( $crop[ 0 ] === 'right' ) { $s_x = $orig_w - $crop_w;} if( $crop[ 1 ] === 'top' ) { $s_y = 0; } else if( $crop[ 1 ] === 'bottom' ) { $s_y = $orig_h - $crop_h; } }
jackrugile

Wordpress 5.1.1 ile hala harika Nisan 2019 çalışıyor. İstediğimden daha küçük olan yüksek kaliteli görüntüleri zorlamak için kullanıyorum add_image_size. Küçük Resimleri Yenile eklentisi ile birlikte.
Mtxz

add_image_sizeişlevi ile nasıl çalışır ?
Gediminas

0

en kolay yol 640x298 ile bir görüntü boyutu eklemek ve yeniden boyutlandırmak için css kullanmak olacaktır. sadece küçük bir ölçek olduğundan, tarayıcı ölçeklendirme oldukça iyi çalışmalıdır.

ne yazık ki, bildiğim tüm eklentiler görüntü büyütme sağlamaz, sadece daha küçük görüntü boyutlarını oluşturur, bu nedenle sunucunuzda 688x320 olmasını istiyorsanız, mevcut eklentilerden birini düzenlemeniz gerekir.

Imagick yüklüyse, eklentinizi 325 satırındaki video-thumbnails.php dosyasında değiştirerek, bu kodu kullanarak küçük resmin daha büyük bir sürümünü oluşturabilirsiniz:

$image_big = new Imagick();
$image_big->setOption('jpeg:size', '688x344');
$image_big->readImage($new_thumbnail);

$upload = wp_upload_bits( basename( $new_thumbnail ), null, $image_big );

ve wordpress'in ondan daha küçük bir küçük resim oluşturmasına izin verin (yüksekliği kesme). Imagick Kodunuzdaki farklı Video platformları için farklı Görsel Boyutlar yaptığınızdan emin olun!


Sanırım şu anda CSS düzeltmesi ile devam edeceğim, gerçekten durumuma devam etmenin en kolay / hızlı yolu. Ayrıca WP çekirdek dosyaları kontrol ve yeniden boyutlandırma işlevi min () kullanır gibi görünüyor; min genişliğini / yüksekliğini belirlemek için ve bunu değiştirmek için kanca yoktur, bu yüzden yükleme sırasında görüntülerimi yükseltmeyecek.
evaqas

"İmage_resize_dimensions" adında kullanabileceğiniz, çağrıyı min () kullanmadan yeniden yazmanıza olanak tanıyan bir kanca vardır.
levi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.