| # ================================== # Charge et affiche  une image  jpg/png/tga ou bmp v.0.2
 # en utilisant les nouvelles fonctions du module image
 #
 # jmsoler, 29/10/2004
 # ==================================
 import Blender
 from Blender import BGL
 IMAGE_ADRESSE="F:/EasyPHP/www/jmsoler/util/blenderfile/bonneannee2004.jpg"
 img=Blender.Image.Load(IMAGE_ADRESSE)
img.glLoad()
 def Display_Image(img,x,y,dx,dy): 
"""
 img =   l'objet chrage' en passant par la fonction
Blender.Image.Load()
 x,y =   position dans la fentre de script à
partir de coin inferieur gauche
 dx,dy = mise a l'echelle : dx*longuer, dy*hauteur
 """
 BGL.glEnable(BGL.GL_TEXTURE_2D)
 BGL.glBindTexture(BGL.GL_TEXTURE_2D, img.getBindCode())
 BGL.glBegin(BGL.GL_POLYGON)
 BGL.glTexCoord2f(0.0,0.0)
 BGL.glColor3f(1.0,1.0,1.0)
 BGL.glVertex3f(float(x),float(y),0.0)
 BGL.glTexCoord2f(1.0,0.0)
 BGL.glColor3f(1.0,1.0,1.0)
 BGL.glVertex3f(float(x+img.getSize()[0]*dx),float(y),0.0)
 BGL.glTexCoord2f(1.0,1.0)
 BGL.glColor3f(1.0,1.0,1.0)
 BGL.glVertex3f(float(x+img.getSize()[0]*dx),float(y+img.getSize()[1]*dy),0.0)
 BGL.glTexCoord2f(0.0,1.0)
 BGL.glColor3f(1.0,1.0,1.0)
 BGL.glVertex3f(float(x),float(y+img.getSize()[1]*dy),0.0 )
 BGL.glEnd()
  BGL.glDisable(BGL.GL_TEXTURE_2D)
 def draw():
global img
 size= BGL.Buffer(BGL.GL_FLOAT, 4)
 BGL.glGetFloatv(BGL.GL_SCISSOR_BOX, size)
 size= size.list
  # Exemple 1, image en fond d'ecran
# au dimension de la fenetre de script
 Display_Image(img,1,1,size[2]/img.getSize()[0],size[3]/img.getSize()[1])
  #exemple 2,  image redimensionnee
Display_Image(img,30,10,0.3,2.0)
  #exemple 3, decoupe dans un coin en haut a droite
Display_Image(img,size[2]-100,size[3]-100,2.0,0.5)
  #exemple 4, affichage normal
Display_Image(img,130,100,1.0,1.0)
  Blender.Draw.Button("Exit", 1, 100, 10, 80, 19)
 def event(evt, val): 
global img
 if (evt== Blender.Draw.QKEY and not val):
 Blender.Draw.Exit()
 img.glFree()
 else:
 Blender.Window.Redraw(Blender.Window.Types['SCRIPT'])
 def bevent(evt):
if   (evt== 1): Blender.Draw.Exit()
 Blender.Draw.Register(draw, event, bevent) |