[编辑1]
看到您的注释,如果您将缩放因子应用于原始头像,那么您可以创建一个应用了相同缩放因子的临时缩略图,然后针对已缩放的头像执行缩略图的统计等效性检查。这看起来像是针对缩略图可能位于化身内的每个位置的缩放化身图像找到缩略图的“差异图像”。对于这些“差异图像”中的每一个,将所有基于像素的差异添加到一个组合的单个数字差异中,并将其存储到一个 2D 数组中,该数组的大小为 x 和 y 位置的维度,缩略图可以放置在缩放的头像图像中(这将小于总头像图像大小,事实上它将是宽度 = avatarWidth - thumbWidth 和高度 = avatarHeight - thumbHeight)。在您计算了此二维数组的所有单个差异实例后,只需找到数组中的最小值,即要使用的缩放化身中左上角的像素位置。当从这个计算的左上角抓取 70 x 70 时,您当然必须考虑 50 x 50 拇指的新缩放尺寸。
您不必(顺便说一句)存储这个 2D 差异值数组,您可以简单地保存一个使用第一个测试位置的值初始化的最小位置,并且仅在当前位置小于当前位置时更新。这将避免增加阵列的存储空间。
[原创]
一旦头像图像被调整大小,它也被插值,这对于所有密集目的来说意味着原始像素信息已经在数学上发生了不可逆转的变化。
您可能会更幸运地进入原始缩略图代码,并更改缩略图代码以获取 70 x 70 px 的子图像,然后通过从每一侧再裁剪 10 px 来创建 50 x 50 !!!这是假设您仍然需要 50 x 50 和 70 x 70 的缩略图。