微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

缩放图片的一部分

如何解决缩放图片的一部分

我仍然不确定我是否了解您要执行的操作,但我想是这样的:您想 复制并粘贴 鼻子,而不是 剪切并粘贴 ,并且希望粘贴的副本在窗口中加倍。与您的第二个示例相同的方式。

因此,脸中央将有一个10x10的鼻子,右下角还有一个20x20的冲洗鼻子。

首先,要复制和粘贴,只需要将像素复制到旧位置和新位置,而不是仅复制到新位置:

def copyAndPaste(picture):
  height = getHeight(picture)
  width = getWidth(picture)
  newPicture = makeEmptyPicture(width+100, height+100)
  for x in range(width):
    for y in range(height):
      pxl = getPixel(picture,x,y)
      color = getColor(pxl)
      if (x>48 and x<59) and (y>58 and y<71):
        newPxl =getPixel(newPicture, x+100,y+100)
        setColor(newPxl,color)
      newPxl = getPixel(newPicture, x,y)
      setColor(newPxl,color)

现在,要放大新粘贴的副本,只需将偏移量加倍。换句话说,在49,59处的第一个像素变为149,159,但在50,60处的像素变为151,161,而在51,61处的像素变为153,163,依此类推。

因此,您想要得到的距离是49,59,将其加倍,加回到49,59,然后再移动100,100:

      if (x>48 and x<59) and (y>58 and y<71):
        newPxl =getPixel(newPicture, (x-49)*2+49+100,(y-59)*2+59+100)
        setColor(newPxl,color)

解决方法

我想放大图片的一部分,在此示例中为鼻子。

我具有选择想要放大的图片部分的功能。

def copyAndPaste(picture):
  height = getHeight(picture)
  width = getWidth(picture)
  newPicture = makeEmptyPicture(width,height)
  for x in range(width):
    for y in range(height):
      pxl = getPixel(picture,x,y)
      if (x>48 and x<59) and (y>58 and y<71):
        newPxl =getPixel(newPicture,#?,#?)
      else:
        newPxl = getPixel(newPicture,y)
      color = getColor(pxl)
      setColor(newPxl,color)

  return newPicture

def d():    
  f=pickAFile()
  picture=makePicture(f)        
  newPicture = copyAndPaste(picture)        
  writePictureTo(newPicture,r"D:\FOLDER\0Pic4.jpg")
  explore (newPicture)

复制粘贴鼻子

我还有一个放大图片的功能:

def Enlarge(picture):
  height = getHeight(picture)
  width = getWidth(picture)
  newPicture = makeEmptyPicture(width*2,height*2)
  x1=0
  for x in range(0,width):
    y1=0
    for y in range(0,height):
      pxl = getPixel(picture,y)
      newPxl = getPixel(newPicture,x1,y1)
      color = getColor(pxl)
      setColor(newPxl,color)

      y1=y1+2
    x1=x1+2

  return newPicture

例如。
从:

原始图片

至:

放大的图片

我已经尝试了很多事情,但是无法弄清楚如何将两者结合起来以放大图片的一部分,而剩下的图片保持完整。

这就是生成的图片应具有的外观(虽然很荒谬),

鼻子增大

我一直在处理小图像,因为该程序可能需要花费很长时间才能执行,因此在此阶段无法使用大图像,这意味着结果是粗略的,但至少会显示出它是否有效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。