

def drawImage(self, img, *args):
    if isinstance(img, Widget):
        img = img.getElement()
    fullWidth = img.width
    fullHeight = img.height
    if (len(args) == 8):
        sourceX = args[0]
        sourceY = args[1]
        sourceWidth = args[2]
        sourceHeight = args[3]
        destX = args[4]
        destY = args[5]
        destWidth = args[6]
        destHeight = args[7]
    elif (len(args) == 4):
        sourceX = 0
        sourceY = 0
        sourceWidth = fullWidth
        sourceHeight = fullHeight
        destX = self[0]
        destY = args[1]
        destWidth = args[2]
        destHeight = args[3]
    elif (len(args) == 2):
        sourceX = 0
        sourceY = 0
        sourceWidth = fullWidth
        sourceHeight = fullHeight
        destX = args[0]
        destY = args[1]
        destWidth = fullWidth
        destHeight = fullHeight
    vmlStr = []
    vmlStr.append('<v:group style="position:absolute;width:10;height:10;')
    dX = self.getCoordX(self.matrix, destX, destY)
    dY = self.getCoordY(self.matrix, destX, destY)
    if ((self.context.matrix[0] != 1) or (self.context.matrix[1] != 0)):
        vmlStr.append('padding-right:')
        vmlStr.append((str(self.parentWidth) + 'px;'))
        vmlStr.append('padding-bottom:')
        vmlStr.append((str(self.parentHeight) + 'px;'))
        vmlStr.append("filter:progid:DXImageTransform.Microsoft.Matrix(M11='")
        vmlStr.append(('' + str(self.matrix[0])))
        vmlStr.append("',")
        vmlStr.append("M12='")
        vmlStr.append(('' + str(self.matrix[1])))
        vmlStr.append("',")
        vmlStr.append("M21='")
        vmlStr.append(str(self.matrix[3]))
        vmlStr.append("',")
        vmlStr.append("M22='")
        vmlStr.append(str(self.matrix[4]))
        vmlStr.append("',")
        vmlStr.append("Dx='")
        vmlStr.append(str(math.floor((dX / 10))))
        vmlStr.append("',")
        vmlStr.append("Dy='")
        vmlStr.append(str(math.floor((dY / 10))))
        vmlStr.append("', SizingMethod='clip');")
    else:
        vmlStr.append('left:')
        vmlStr.append(('%dpx;' % int((dX / 10))))
        vmlStr.append('top:')
        vmlStr.append(('%dpx' % int((dY / 10))))
    vmlStr.append('" coordsize="100,100" coordorigin="0,0"><v:image src="')
    vmlStr.append(DOM.getAttribute(img, 'src'))
    vmlStr.append('" style="')
    vmlStr.append('width:')
    vmlStr.append(str(int((destWidth * 10))))
    vmlStr.append(';height:')
    vmlStr.append(str(int((destHeight * 10))))
    vmlStr.append(';" cropleft="')
    vmlStr.append(str((sourceX / fullWidth)))
    vmlStr.append('" croptop="')
    vmlStr.append(str((sourceY / fullHeight)))
    vmlStr.append('" cropright="')
    vmlStr.append(str((((fullWidth - sourceX) - sourceWidth) / fullWidth)))
    vmlStr.append('" cropbottom="')
    vmlStr.append(str((((fullHeight - sourceY) - sourceHeight) / fullHeight)))
    vmlStr.append('"/></v:group>')
    self.insert('BeforeEnd', ''.join(vmlStr))

dataset/ETHPy150Open anandology/pyjamas/library/gwt/Canvas/GWTCanvasImplIE6.py GWTCanvasImplIE6.drawImage/VarMisuse@145/168 `args`->`self`