2017-01-17 3 views
2

PILなどを使わずにプログラミングをしていて、これを行う方法が見つからない場合は、間違っていると正しい方向に向いてください!可変入力jython/pythonによるスケールアップ

スケール入力で選択したサイズでイメージをTGTにコピーするには、次のコードを変更する必要があります。この段階で私は画像をキャンバスにコピーするようにしました。このキャンバスのサイズはスケール入力によって決まりますが、画像そのもののスケールをどのように調整するかはわかりません。

ご協力いただきまして誠にありがとうございます。

def driver(): 
    pic = makePicture(pickAFile()) 
    repaint(pic) 
    modifiedPic = scale(pic,2.0) 
    repaint(modifiedPic) 

def scale(srcPic,scale): 
    xStart = 0 
    yStart = 0 
    xEnd = getWidth(srcPic) 
    yEnd = getHeight(srcPic) 
    width = getWidth(srcPic) 
    height = getHeight(srcPic) 
    tgt = makeEmptyPicture(width*int(scale),height*int(scale)) 

    for x in range(0,width): 
     for y in range(0,height): 
      pxSrc=getPixel(srcPic,x,y) 
      pxTgt=getPixel(tgt,x,y) 
      setColor(pxTgt,getColor(pxSrc)) 

    srcWidth = xEnd -xStart 
    srcHeight = yEnd - yStart 

    tgtWidth = int(srcWidth*scale) 
    tgtHeight = int(srcHeight*scale) 

    for y in range(0,tgtHeight): 
     for x in range(0,tgtWidth): 
      pxSrc=getPixel(srcPic,int(x/scale)+xStart,int(y/scale)+yStart) 
      pxTgt=getPixel(tgt,int(xStart*scale),int(yStart*scale)) 
      setColor(pxTgt,getColor(pxSrc)) 
    return tgt 

答えて

0

この

def scale(srcPic,scale): 
    width = getWidth(srcPic) 
    height = getHeight(srcPic) 
    tgt = makeEmptyPicture(width*int(scale),height*int(scale)) 

    # get the pixel from original source 
    for x in range(0, width): 
    for y in range(0,height): 
     pxSrc=getPixel(srcPic,x,y) 

     #copy source pixel by scale amount along x and y axis 
     for i in range(x * int(scale), x * int(scale) + int(scale)): 
     for j in range(y * int(scale), y * int(scale) + int(scale)): 
      pxTgt=getPixel(tgt,i,j) 
      setColor(pxTgt,getColor(pxSrc)) 

    return txt 
をお試しください
関連する問題