Jython图片缩放算法

时间:2014-06-03 02:38:05

标签: python image math scaling jes

据我所知,这更像是一个算术问题,而不仅仅是一个编程问题,但它与我此刻试图解决的问题有关。另外,我不知道任何讨论数学或JES相关主题的好地方。

我遇到的问题是,对于单一任务,我们应该使用JES来绘制不同的国旗。标志可以是任何大小,由用户确定。根据旗帜上的星星图案和数量难以对旗帜进行评级。

无论如何,我试图绘制智利国旗,我遇到的唯一问题是如何计算明星应该是多少。

这是我用于缩放星形的功能:

def scaleStar(picture, scale):  
# the starting X position is set to 0
sourceX = 0
# Calculates the scaled width and height of the picture as an integer
scaleWidth = int(getWidth(picture) / scale)    
scaleHeight = int(getHeight(picture) / scale)
# Creates an empty picture with the scaled dimensions just calculated
scaledPicture = makeEmptyPicture(scaleWidth, scaleHeight)  
# Begins the loop that goes through the entire picture and copies the
# pixel from the source to the target pixel
for scaleX in range(0, scaleWidth):
  sourceY = 0
  for scaleY in range(0, scaleHeight):
    sourcePixel = getPixel(picture, int(sourceX), int(sourceY))
    scaledPixel = getPixel(scaledPicture, scaleX, scaleY)
    colour = getColor(sourcePixel)
    setColor(scaledPixel, colour)
    sourceY = sourceY + scale
  sourceX = sourceX + scale
return scaledPicture

我知道这颗星的大小是整个旗帜的1/12。因此,对于比例参数,我尝试使用值12.这适用于300宽200高的旗图。但不适用于其他尺寸。我试过(高度*宽度)/ 12整个标志,但这只返回了一个值错误。在过去的3天里,我一直在玩这个代码,每当我想到答案时,明星的大小就会消失。

如果这是一个愚蠢的问题,我真的很抱歉,但如果有人对如何解决这个问题有任何建议,我将非常感激。如果您需要更多信息来提供帮助,请不要犹豫,问:)

0 个答案:

没有答案