Precedente Indice Successiva

Immagini

Immagine slide
  • La prima operazione da fare è caricare l'immagine dalla rete con il metodo load_image(<url>) di simplegui:
    palla = simplegui.load_image("http://www.salvi.mn.it/dati/palla.png")
  • Ora dovremo disegnare l'immagine sul nostro pannello. Purtroppo il metodo di disegno è piuttosto complesso.
  • Il metodo draw_image(<immagine>, (<x_centro_img>, <y_centro_img>), (<larg_img>, <alt_img>), (<x_dest>, <y_dest>), (<larg_dest>, <alt_dest>)[, <rotazione_radianti>]) di canvas serve a disegnare un'immagine, ad esempio:
    pannello.draw_image(palla, (raggio, raggio), dim_palla, (x,y), dim_palla)
  • Questo metodo consente di copiare l'immagine sul pannello, per intero o in parte, eventualmente ridimensionandola e ruotandola.
  • (<larg_img>, <alt_img>) indicano la dimensione dell'area copiata. Se sono più piccoli della dimensione dell'immagine, solo una parte verrà copiata.
  • (<x_centro_img>, <y_centro_img>) indicano il centro dell'area copiata. Se si copia l'intera immagine, dovranno corrispondere al centro effettivo dell'immagine. Se si sta copiando solo un pezzo, indicheranno il centro del pezzo copiato, riferito all'intera immagine
  • Se (<larg_dest>, <alt_dest>) non corrispondono a (<larg_img>, <alt_img>) l'immagine o pezzo di immagine verrà allargato o ridotto ed eventualmente deformato, se il rapporto non corrisponde
  • Un esempio completo è:
    import simplegui
    import random
    larghezza = 300
    altezza = 200
    palla = simplegui.load_image("http://www.salvi.mn.it/dati/palla.png")
    dim_palla = (palla.get_width(), palla.get_height())
    raggio = dim_palla[0] / 2
    x = larghezza / 2
    y = altezza / 2
    vx = random.randrange(1,5)
    vy = random.randrange(1,5)
    def disegno (pannello):
    global x, y, vx, vy
    pannello.draw_image(palla, (raggio, raggio), dim_palla, (x,y), dim_palla)
    x += vx
    y += vy
    if x < raggio or x > larghezza - raggio:
    vx = -vx
    if y < raggio or y > altezza - raggio:
    vy = -vy
    finestra = simplegui.create_frame("Prova", larghezza, altezza, 5)
    finestra.set_canvas_background('#000080')
    finestra.set_draw_handler(disegno)
    finestra.start()
© Ing. Stefano Salvi - released under FDL licence

Valid XHTML 1.0! Valid CSS!