将调整大小的图像坐标映射回原始图像

时间:2013-09-12 23:21:01

标签: javascript php image resize

所以这是一个有趣的(或者至少我认为是)。

原来我有两张同一张图片,原件和一张大小适合窗户。

然后用户在调整大小的图像版本上创建一个多边形,并使用一些javascript将坐标发送到php脚本,然后将多边形合并到原始图像中。

问题是,原始图像的调整大小的坐标不一样,它们之间仍然存在关系。

以下是我在js中调整图像大小的代码:

if(h > 610 || w > 815){
                    while(h > 610 || w > 815){
                        h = Math.ceil(h*0.80);
                        w = Math.ceil(w*0.80);
                    }
                }

此代码允许我将图像保留在工作区内(610 x 815),同时保持一定的宽高比。

然后在php中我试图恢复每个坐标内的调整大小,但这里是我卡住的地方:

$values = array();

            $num_points = count($polyCoords);


            foreach($polyCoords as $coord){
                array_push($values, intval($coord['x']) /* +- RELOCATE FACTOR? */ );
                array_push($values, intval($coord['y']) /* +- RELOCATE FACTOR? */ );
            }

有人能帮我解释一下如何计算每个点的“重定位因子”吗? 我有原始大小和调整大小...大小。

任何想法都必须贬值。 感谢。

1 个答案:

答案 0 :(得分:0)

你尝试过使用百分比吗?我不完全确定它是否足够准确。类似的东西:

$newcoord['x'] = ($coord['x']/$originalWidth) * $newWidth;
$newcoord['y'] = ($coord['y']/$originalHeight) * $newHeight;
相关问题