The main problem here is about too large file size of image not image re-sizing
我的wordpress网站就像一个包含许多图像的网络画廊。
最初,我只是通过wordpress media uploader上传了数百张图片,根本不关心它的文件大小。
然而,当我浏览我的网站时,加载主页的速度太慢,因为图像文件太大。
由于我不想修改已经上传的图像,是否可以创建一个过滤器或插件来减少图像文件大小(no dimension changes)还是在运行中降低其质量以加快网站加载速度?
P、 无论如何,我最后的办法是使用photoshop修改图像并降低其质量,以减小文件大小。
有什么建议吗?
最合适的回答,由SO网友:Chris Strutton 整理而成
如果您对PHP编程感到满意,就可以动态地重新调整图像大小。从你的问题来看,我想你还没有到那里。如果是这样,您应该查看Regenerate Thumbnails 插件。使用此插件,您可以在“媒体设置”页面中更改所需的图像大小,然后一次性、分组或一次一个地重新调整图像大小。
如果您对编程感到满意,您需要查看WP_Image_Editor 班网上有几个教程可以帮助您入门。
更新:你说你对编码很满意,就这样吧。您将需要一个功能来抓取图像,调整质量并将其流式传输到浏览器。我在正在开发的插件中也做了类似的事情。
你需要创建一个新的slug(在我的情况下是http://my.domain.com/thumbnail). 要调整质量的每个图像都将使用urlhttp://my.domain.com/thumbnail?imageurl=myimage.jpg. 在函数中。需要使用php进行挂钩add_action( \'parse_request\', \'yourfunction\' );
. 然后:
function yourfunction ( $wp ) {
if ( \'thumbnail\' == $wp->query_vars[\'pagename\'] ){
$imagefilename = $_REQUEST[\'url\']; // change to real path left to you
$image = wp_get_image_editor( $imagefilename );
$image->set_quality( $jpg_comp_level );
$image->stream();
}
}
希望这有帮助
SO网友:zac
一个想法是使用TimThumb 为你在飞行中再生一切。这是我在自己的照片网站上使用的解决方案。通过设置参数,可以控制图像的大小和许多其他选项。例如,在输出图像的地方,您可以将其编辑为如下内容:
<img src="<?php bloginfo(\'template_url\'); ?>/scripts/timthumb.php?src=<?php echo get_post_meta($post->ID, \'my_post_type\', true); ?>&w=60&h=60&zc=1" alt="<?php the_title(); ?>" />
这应该可以实现更快加载所需的功能,并且能够在不接触原稿的情况下提供不同质量的图像。
我最近了解到,该脚本存在一些漏洞,因此如果您选择此路径,您可能希望签出该插件。
http://wordpress.org/extend/plugins/timthumb-vulnerability-scanner/