是否可以显示当前特征图像的总像素数、大小(MP)、纵横比?
例如,我使用它来回显当前帖子的全尺寸特征图像的图像尺寸。
if ( has_post_thumbnail()) {
$full_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'full\');
// echo image width
echo $thumb_image_url[1];
// echo image height
echo $thumb_image_url[2];
例如,我得到尺寸:2048 x 1536。
是否可以使用单独的函数来计算:
宽度x高度的像素总数?(例如2048 x 1536=3.145.728像素)
变换像素总数(以百万像素为单位)?(314万像素)基于图像宽度和高度计算纵横比的函数?(1,33:1-4:3(屏幕))有关百万像素和纵横比计算器的更多信息,请访问:
http://web.forret.com/tools/megapixel.asp我也会更进一步。我认为可以得到纵横比:标准(lansdcape)、纵向或方形(近似)。
标准(最常用)图像纵横比宽度/高度为4:3,横向,数学上也是1:1.3333333333333(例如1600 x 1200像素照片)。
纵向为0.75(例如1600 x 1200像素照片)。
正方形为1:1(例如1200 x 1200像素照片)。
我认为最好的是制作一个函数来检查纵横比的结果。
如果它是1.33(如果图像很少被裁剪,如果它大于1.2,甚至更好),则返回“横向图像”。
如果该值为0.75(如果图像很少被裁剪,如果该值小于0.8,甚至更好),则返回“肖像图像”。
如果大于0.8但小于1.2,则返回“方形”。
有什么建议吗?
最合适的回答,由SO网友:jack 整理而成
当然,php绝对可以处理这样的简单数学。你所要做的就是参考wp_get_attachment_image_src
电话:
<?php
if ( has_post_thumbnail()) {
$full_image_info = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'full\');
$img_h = $full_image_info[1];
$img_w = $full_image_info[2];
$total_pixels = $img_w * $img_h ;
$megapixels = round($total_pixels)
/* see http://at2.php.net/manual/en/function.round.php --
they get into the details of this method there. There\'s also number_format() as an option. */
$ratio = $img_w / $img_h;
从那里,你可以随心所欲
$total_pixels
,
$megapixels
, 和
$ratio
. 当然,你可以把这些数学运算打包成一个函数,比如说,在你的函数中放入这样的东西。php:
function get_total_pixels() {
if ( !has_post_thumbnail()) { return \'Error - no image!\'; }
else {
$image_info = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'full\');
$img_h = $image_info[1];
$img_w = $image_info[2];
$total_pixels = $img_w * $img_h ;
return $total_pixels;
}
}
然后打电话
<?php echo get_total_pixels(); ?>
在模板文件中(循环内)。