使用 CSSmax-width
并max-height
设置比例。这将适当地扩展一切。
例如:
img { max-width: 100px; }
这是一个 JS 小提琴:http: //jsfiddle.net/KSzhS/
做起来并不难。
这是我为“基本上”做同样的事情而编写的一个函数,但它不是分析衣服,而是分析字母。它是用 PHP 编写的,但如果您可以使用 HTML5,您也可以在客户端执行此操作。
/**
* Function: Returns the space between letters, and the width of letters.
* The first index is set to 0, as that is where it starts
* Since spaces don't register (no pixels), strlen may not work.
* $image image cursor (from imagecreatetruecolor)
*/
function get_letter_dimensions($image)
{
$bg = imagecolorallocatealpha($image, 0, 0, 0, 127);
$height = imagesy($image) - 1; // was causing issues without
$width = imagesx($image);
$bottom = 0;
$right = 0;
$letter_space = array(0=>0); // This holds the pixels between the letters
$letter_width = array(0=>0); // This holds the width of the letters
$y = $height;
$spacing = 0;
$lettering = 0;
$data = array();
for ($x = 0 ; $x < $width ; $x++)
{
while((imagecolorat($image, $x, $y) == $bg) && ($y >= 1 )) $y--;
if($y == 0)
{
if($lettering) $letter_width[] = $lettering;
$lettering = 0;
$spacing++;
}
else
{
if($spacing) $letter_space[] = $spacing;
$spacing = 0;
$lettering++;
}
$y = $height;
}
foreach($letter_space as $k=>$val) $data[$k] = $val + $letter_width[$k];
return $data;
}
不过,您需要对其进行修改,以便它不会插入字母,但是您将从头开始,当您遇到不清晰或白色的像素时,您会对其进行标记,并且从最后开始。然后你就会有你的参考点。
这只是一些简单的数学和服装分析。如果您对“腰线”匹配感兴趣,您可能希望从底部开始,然后向上,以获得衬衫的图像。然后你可以看到像素的“线”在哪里,这将代表腰部的位置。并以此为基础进行计算。
因此,如果您想帮助自己,echo
请从提供的函数开始获取结果,以便您可以看到它的样子
例子
------------------------------
------------------------------
------------------------------
------------------------------
-------**-------------**------
------*--*-----------*--*-----
-----*-------------------*----
------------------------------
----------***********---------
--***---------------------***-
------------------------------
那就是如果你从下往上走,你可以“看到”,腰线在哪里。然后计算像素,并从中调整大小。您可以修改此功能以创建另一个自动裁剪功能。此外,如果您愿意,可以修改此功能,以便您可以从顶部开始,或者横向并从任一侧开始。您甚至可以发疯并允许使用偏移量。
一旦你设置了这种类型的信息,你就可以真正开始找出你正在使用什么。如果您正在处理永远不会使用 0,0 像素的图像,您可以尝试将其用作背景颜色。这将有助于自动裁剪功能。
您进行的测量点越多,您的分析就越智能。而且,如果您可以访问有关您正在查看的内容的信息,例如,您拥有与其他数据相关联的图像,那么您可以采取一些捷径(因此您不必进行大量分析即可知道如果您正在使用“裤子”、“裙子”、“衬衫”和“连衣裙”)。
编辑:其他想法
只是想了想……这实际上是您正在做的一件非常整洁的小事,我正在考虑编写自己的版本来取乐。这是我一直在考虑的一些事情。实施如何拉入这些图像很重要。
- 您是否从目录中提取所有数据?
- 您是否已经将图像设置为不同的,以便您知道自己在拉什么?
- 你知道什么是衬衫,什么是裤子吗?
您还可以设置“审查过程”,将偏移存储在缩放的原始图像上。这将允许您绕过计算,而只是查找存储的数据。无论如何,“审查过程”将允许您仔细检查计算是否已设置,然后存储它们。
我不知道。如果我做这样的事情,我会告诉你的。