Au Secours ! Re: Dégradé avec deux couleurs

Posté par Anonyme le 9/3/2006 9:35:43
Bonjour WDForgiste (Femme) et WdForgiste (Homme)
Et Flute ...
J'ai tout essayé mais cela ne fonctionne pas

PROCEDURE dDégradé(nDC, x1, y1, x2, y2, nSens = 2, nCouleurDebut = iNoir, nCouleurFin = iBlanc, nTransparenceDebut = 128, nTransparenceFin = 128)
PROCEDURE dDégradé(nDC, x1, y1, x2, y2, nSens = 2, nCouleurDebut = iNoir, nCouleurFin = iBlanc, nTransparenceDebut = 128, nTransparenceFin = 128)
// J'ai d'abord essayé cette méthode mais Ndc =0
SI nDC=0 ALORS nDC=SysRécupèreDC(dDébutDessin("IMG_Lum")	)
//-------------------------------------------------------
//Puis celle Ci 
// Mais toujours rien dans mon champ image
dDébutDessin("IMG_Lum")
SI nDC=0 ALORS nDC=SysRécupèreDC(Handle("IMG_Lum")	)
//---------------------------------------------------
GRADIENT_RECT est une structure
	UpperLeft, LowerRight sont des entiers sans signe
FIN
TRIVERTEX est une structure
	X, Y sont des entiers	// Coordonnées de départ du dégradé
	Red, Green, Blue, Alpha sont des entiers sur 2 // Couleur et transparence
FIN

Vertex est un tableau de 2 TRIVERTEX
iGrRect est un GRADIENT_RECT

cdA, cfA sont des entiers sur 4
cdR, cdG, cdB sont des entiers sur 4
cfR, cfG, cfB sont des entiers sur 4

// Récupère les composantes de la couleur de départ
cdR = modulo(nCouleurDebut, 256)
cdG = modulo(nCouleurDebut/256, 256)
cdB = modulo(nCouleurDebut/256/256, 256)

// Récupère les composantes de la couleur d'arrivée
cfR = modulo(nCouleurFin, 256)
cfG = modulo(nCouleurFin/256, 256)
cfB = modulo(nCouleurFin/256/256, 256)		

// Transforme les entiers sur 2 en entiers sur 4
cdR = cdR + cdR * 0x00ff
cdG = cdG + cdG * 0x00ff
cdB = cdB + cdB * 0x00ff
cdA = nTransparenceDebut + nTransparenceDebut * 0x00ff

// Transforme les entiers sur 2 en entiers sur 4
cfR = cfR + cfR * 0x00ff
cfG = cfG + cfG * 0x00ff
cfB = cfB + cfB * 0x00ff
cfA = nTransparenceFin + nTransparenceFin * 0x00ff

// Vertex de départ
Vertex[1]:X = x1
Vertex[1]:Y = y1
Vertex[1]:Red 	= cdR
Vertex[1]:Green = cdG
Vertex[1]:Blue  = cdB
Vertex[1]:Alpha = cdA

// Vertex d'arrivée
Vertex[2]:X = x2
Vertex[2]:Y = y2
Vertex[2]:Red 	= cfR
Vertex[2]:Green = cfG
Vertex[2]:Blue  = cfB
Vertex[2]:Alpha = cfA

iGrRect:UpperLeft  = 0
iGrRect:LowerRight = 1

// Dessine le dégradé
API("msimg32", "GradientFill", nDC, &Vertex[1], 2, &iGrRect, 1, nSens)


Si mon modérateur préféré ou une autre personne compétente peux m'éclairer, je lui en serai éternellement reconnaissant

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=3677&post_id=15507