0

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

原来我有两个相同图像的副本,一个是原始的,一个是调整大小以适合窗口的。

然后,用户在图像的调整大小版本上创建一个多边形,并使用一些 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? */ );
            }

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

任何想法都必须受到重视。谢谢。

4

1 回答 1

0

您是否尝试过使用百分比?我不完全确定它是否足够准确。就像是:

$newcoord['x'] = ($coord['x']/$originalWidth) * $newWidth;
$newcoord['y'] = ($coord['y']/$originalHeight) * $newHeight;
于 2013-09-13T23:23:51.550 回答