如何放大特色帖子缩略图?

时间:2012-04-30 作者:evaqas

情况是这样的:我正在使用视频缩略图插件自动获取并设置youtube/vimeo缩略图为帖子特色图像。问题是,默认的youtube/vimeo缩略图大小只比我的主题主内容宽度小一点。

所以我需要的是扩大规模。如果我去媒体库,我可以手动编辑每个图像,然后设置确切的宽度,WordPress会将其适当放大(我不介意质量有点差)。那么,有没有一种方法可以让WP在每次上传图像时自动做到这一点?

这是我定义的图像大小:add_image_size(\'post-full\', 688, 320, true); Vimeo拇指尺寸为640x320。

2 个回复
最合适的回答,由SO网友:levi 整理而成

您可以使用本机Wordpressimage_resize 用于放大图像的功能。Wordpress提供了一个名为“image_resize_dimensions“您可以使用它覆盖默认的裁剪设置。下面是一个修改过的函数,它将支持按比例放大:

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 );
}
现在像这样钩住此函数:

add_filter(\'image_resize_dimensions\', \'image_crop_dimensions\', 10, 6);
完成后,您可以使用image_resize 根据需要放大或缩小图像的功能。

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

SO网友:fischi

最简单的方法是添加640x298的图像大小,并使用css调整大小。由于这只是一个小规模的扩大,浏览器缩放应该工作得很好。

不幸的是,我知道的所有插件都不提供图像放大功能,只是生成较小的图像大小,因此如果您想在服务器上安装688x320,则必须编辑现有的一个插件。

如果安装了Imagick,可以在文件视频缩略图中更改插件。php第325行,生成缩略图的更大版本,使用以下代码:

$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 );
然后让wordpress从中生成较小的缩略图(剪切高度)。确保在Imagick代码中为不同的视频平台制作不同的图像大小!

结束

相关推荐

Pull images from the gallery

我正在构建一个模板,wordpress主要用作图像CMS,我从每篇文章的内容部分提取第一幅图像。<img src=\"<?php echo grab_image() ?>\" /> function grab_image() { global $post, $posts; $first_img = \'\'; ob_start(); ob_end_clean(); $output = preg_match_all(\'/&l