获取基于图像宽度和高度的像素总数、大小(以百万像素为单位)和纵横比?

时间:2014-07-07 作者:Advanced SEO

是否可以显示当前特征图像的总像素数、大小(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,则返回“方形”。

    有什么建议吗?

    1 个回复
    最合适的回答,由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(); ?> 在模板文件中(循环内)。

    结束

    相关推荐

    如何使用图片上传的getimageSize()?

    我需要通过media box检查要上载的图像的分辨率,然后将其上载到自定义目录。作为起点,我使用了How Can I Organize the Uploads Folder by Slug (or ID, or FileType, or Author)?其中一部分是这样的:function wpse_25894_custom_upload_dir($path) { $use_default_dir = ( isset($_REQUEST[\'post_id\'] )