BlendIMG 和 ChromaKey() jes,解释这些功能以及为什么我的程序不起作用



每当我尝试在JES中运行程序时,例如,无论何时我在括号内放置任何东西,程序都不会工作?!我做错了什么!当我尝试运行程序并输入image(pict)时,它只是说错误,全局未找到名称。def形象(皮克特人):

还有我在下面做的这段代码有什么问题,它们不会运行,你也可以详细解释我的代码的每个部分,因为我知道该写什么,但我很难理解该怎么做。

我还如何使用while语句编写函数,即使用addLine()在地图上添加多条路由,从使用输入?

def startEnvironemnt(pict):
  a = pickAFile()
  pict = makePicture(a)
  sourceH = getHeight(pict)
  sourceW = getWidth(pict)
  canvas = makeEmptyPicture(sourceW, sourceH)
  show(canvas)
  show(pict)
  explore(pict)
<标题>学监2 h1> rog 3:这应该是写一个程序来混合两个图片,1。混合第一个PIC的前三分之一。然后在中间三分之一处放两张照片,3。然后显示第二张图片的最后三分之一

程序将源图像设置为相同的大小

def blendImg():
  #mark on the moon
  a = pickAFile()
  source = makePicture(a)
  #WaterFall
  b = pickAFile()
  secondImg = makePicture(a)
  sHeight = getHeight(secondImg)
  sW = getWidth(secondImg)
  canvas = makeEmptyPicture(sHeight, sW)
  #Copy of pic 1, 94columns(1/3 of image)
  sourceX=0
  for targetX in range(0,94):
    sourceY=0
    for targetY in range(0, getHeight(source)):
      color = getColor(getPixel(source,sourceX,sourceY))
      setColor(getPixel(canvas,targetX,targetY),color)
      sourceY = sourceY + 1
    sourceX = sourceY + 1
   #actual blending
    blend = getWidth(source)-94
    sourceX=0
    for targetX in range(150,getWidth(source)):
      sourceY=0
      for targetY in range(0,getHeight(secondImg)):
        sPixel = getPixel(source,sourceX+94,sourceY)
        sImgPixel = getPixel(secondImg,sourceX,sourceY)
        newRed = 0.25*getRed(sPixel)+0.25*getRed(sImgPixel)
        newGreen = 0.25*getGreen(sPixel)+0.25*getGreen(sImgPixel)
        newBlue = 0.25*getGreen(sPixel)+0.25*getGreen(sImgPixel)
        nColor = makeColor(newRed,newGreen,newBlue)
        setColor(getPixel(canvas,targetX,targetY),nColor)
        sourceY = sourceY+1
      sourceX = sourceX+1
      sourceX=blend
      for targetY in range(94+blend,94+getWidth(secondImg)):
        sourceY=0
        for targetY in range(0,getHeight(secondImg)):
          color = getColor(getPixel(secondImg,sourceX,sourceY))
          setColor(getPixel(canvas,targetX,targetY),color)
          sourceY = sourceY + 1
        sourceX = sourceX + 1
    show(canvas)
    return(canvas)

通常,你会想尝试在stackoverflow上提问,这样每个问题一个问题。

要使第一个程序工作,您需要做这样的事情(不要键入>>>,这只是提示符):

>>> picture = makePicture(pickAFile())
>>> startEnvironemnt(picture)

注意,在函数的定义中,您使用了pict,而在提示符处我使用了picture。只要您在提示符的两个位置使用相同的名称,您就可以使用任何您喜欢的非保留词。如果它告诉您pict没有定义,那么在尝试使用它之前,请确保在代码中的某个地方使用pict = makePicture(pickAFile())之类的赋值语句为它赋值。

程序2在第一行末尾缺少一个冒号,因此不太可能工作。

我认为你应该编辑你的问题,将while循环部分拉到一个单独的问题中。

相关内容

  • 没有找到相关文章

最新更新