Bagaimana cara meningkatkan thumbnail posting yang ditampilkan?

11

Situasinya adalah ini: Saya menggunakan plugin Video Thumbnails untuk secara otomatis mendapatkan dan mengatur thumbnail youtube / vimeo sebagai gambar posting fitur. Masalahnya adalah ukuran thumbnail standar youtube / vimeo hanya sedikit lebih kecil dari lebar konten utama tema saya.

Jadi yang saya butuhkan adalah meningkatkannya. Jika saya pergi ke Media Library, saya dapat mengedit setiap gambar secara manual, kemudian mengatur lebar persis saya dan WordPress meningkatkannya dengan tepat (Saya tidak keberatan bahwa kualitasnya sedikit lebih buruk). Jadi adakah cara WP melakukan itu secara otomatis setiap kali sebuah gambar diunggah?

Ini adalah ukuran gambar yang saya tetapkan: add_image_size('post-full', 688, 320, true);Ukuran ibu jari Vimeo adalah 640x320.

evaqas
sumber
1
Berikut ini adalah plugin yang saya tulis untuk meningkatkan thumbnail, berdasarkan solusi oleh levi dan perbaikan oleh jackrugile. wordpress.org/support/plugin/thumbnail-upscale
khromov

Jawaban:

20

Anda dapat menggunakan fungsi image_resize asli Wordpress untuk meningkatkan gambar. Wordpress menyediakan hook yang disebut " image_resize_dimensions " yang dapat Anda gunakan untuk menimpa pengaturan pemotongan default. Berikut adalah fungsi yang dimodifikasi yang akan mendukung peningkatan:

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 );
}

Sekarang kaitkan fungsi ini seperti ini:

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

Setelah selesai, Anda dapat menggunakan fungsi image_resize untuk memperbesar atau memperkecil gambar sesuai kebutuhan.

$cropped_image = image_resize($image_filepath, $width, $height, true);
pungutan
sumber
Saya menggunakan metode ini namun ketika saya mencoba dan menghasilkan gambar yang dipotong maka saya baru saja mendapatkan kesalahan: Image Editor Save Failed - ada ide?
Felix Eve
Masih berfungsi dengan baik pada bulan Juli 2015 dengan Wordpress 4.1.5. Persis seperti yang saya butuhkan untuk memastikan gambar kecil ditingkatkan untuk Gambar Unggulan tulisan saya.
Mark Rummel
Bagi mereka yang ingin mendukung opsi posisi krop, tambahkan kode berikut tepat sebelum kembalinya fungsi: 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
Masih berfungsi dengan baik April 2019 dengan Wordpress 5.1.1. Saya menggunakannya untuk memaksa gambar kelas atas yang lebih kecil dari kebiasaan saya yang diinginkan add_image_size. Bersamaan dengan plugin Regenerate Thumbnails.
Mtxz
bagaimana membuatnya berfungsi dengan add_image_sizefungsi?
Gediminas
0

cara termudah adalah menambahkan ukuran gambar dengan 640x298, dan menggunakan css untuk mengubah ukurannya. karena ini hanya peningkatan skala kecil, penskalaan browser harus bekerja dengan baik.

sayangnya, semua plugin yang saya tahu tidak menyediakan peningkatan gambar, hanya menghasilkan ukuran gambar yang lebih kecil, jadi jika Anda ingin memiliki 688x320 di server Anda, Anda harus mengedit salah satu plugin yang ada.

jika Anda memasang Imagick, Anda dapat mengubah plugin Anda dalam file video-thumbnails.php on line 325, menghasilkan versi thumbnail yang lebih besar, menggunakan kode ini:

$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 );

dan biarkan wordpress menghasilkan thumbnail yang lebih kecil darinya (memotong ketinggian). Pastikan untuk membuat Imagesizes berbeda untuk Videoplatforms berbeda di Imagick Code Anda!

fischi
sumber
Saya pikir saya akan pergi dengan memperbaiki CSS sekarang, itu benar-benar cara termudah / tercepat untuk melanjutkan situasi saya. Saya juga memeriksa file-file inti WP dan tampaknya fungsi pengubahan ukuran menggunakan min (); untuk menentukan min lebar / tinggi dan tidak ada kait untuk memodifikasinya, jadi tidak akan meningkatkan gambar saya saat diunggah.
evaqas
Ada kait yang dapat Anda gunakan yang disebut "image_resize_dimensions" yang akan memungkinkan Anda menulis ulang fungsi tanpa min ().
levi