【问题标题】:Calculating Crop Coordinates计算作物坐标
【发布时间】:2013-03-06 01:06:50
【问题描述】:

我试图弄清楚如何从一个小得多的图像计算全尺寸图像的裁剪坐标,假设全尺寸图像为 1775 x 2664,即用户在裁剪页面上看到的图像(使用 jCrop ) 为 533 X 800。

小图上的裁剪坐标为:20,11,230,305

(从左开始,从上开始,从左结束,从上结束)

如何将坐标缩放到全尺寸图像。

我需要允许用户在预览页面上选择图片的一部分,然后使用php从全尺寸图片中提取图片的适当部分..

【问题讨论】:

    标签: php gd2


    【解决方案1】:

    给你一些参考:http://en.wikipedia.org/wiki/Rule_of_three_%28mathematics%29#Rule_of_Three

    // assuming fixed ratio on width and height
    // which is the case in your example: ~33% for both dimensions
    $FULL_WIDTH = 1775;
    $SCALED_WIDTH = 533;
    
    $ratio = $SCALED_WIDTH / $FULL_WIDTH;
    
    $scaled_crop_coordinates = array(20, 11, 230, 305);
    
    $full_crop_coordinates = array();
    foreach($scaled_crop_coordinates as $val)
    {
        $full_crop_coordinates[] = floor($val / $ratio);
    }
    var_dump($full_crop_coordinates);
    

    【讨论】:

    • 这与我已经拥有的几乎相同,但我不得不将比例翻倍并且无法弄清楚为什么,这是因为我在裁剪页面上使用的图像是大小的 50% ..
    【解决方案2】:

    应该可以的:

    left = 20 * (1775/533)
    top = 11 * (2664/800)
    right = 230 * (1775/533)
    bottom = 305 * (2664/800)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-09
      • 2018-08-21
      • 1970-01-01
      • 2017-05-30
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多