cs_Batman60
Messages postés71Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention21 octobre 2007
-
15 août 2005 à 10:17
cs_Batman60
Messages postés71Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention21 octobre 2007
-
20 août 2005 à 12:56
salut je cherche le moyen d'ajouter à une image des parties colorées ou transparentes
exemple sur une image 1024X800 je voudrais la transformer en 1024X1024 mais sans étirement ex:1024X800+224 la partie 1024X224 transparente ou colorée
le but c'est de texturer sur de la 3D opengl sans déformer l'image car opengl n'accepte que les images carrées ou résolution du genre 1024X256
ainsi la partie transparente ajoutée à l'image prend la couleur de fond de la fenêtre opengl
ou si coloration de ce rajout mettre la même couleur que le fond de la fenêtre opengl
cs_Batman60
Messages postés71Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention21 octobre 2007 15 août 2005 à 23:13
je ne sais pas de quoi tu parle je suis débutant en programmation
pour le traitement d'image je ne connais que la lib freeimage
pour l'instant avec la lib freeimage je ne sais que diminuer les bitmap ou jpeg
cs_keil
Messages postés52Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention25 octobre 2005 16 août 2005 à 09:56
une image n'est rien d'autre qu'une en-tete suivie d'un tableau de pixels.
Pour créer et/ou utiliser une texture, tu utilise le tableau de pixel
et tu fourni en arguments la taille (width et height) de la texture et
le tableau de pixel à une fonction (par exemple glTexture2i(...))
Pour ton problème il suffit de créer un tableau de pixel vide d'une taille plus grande que ton tableau original
tableau de pixel original tpo[]
sizeof(tpo) = 1024x800x4 //4 car tu travaille en RGBA
tableau de pixel nouveau tpn[]
sizeof(tpn) = 1024x1024x4
après tu copie ton premier tableau dans le 2e par une imbrication de 4 boucles:
pour k = 0->1024-1
pour j = 0->800-1
pour i = 0->4-1
tpn[k*j+i] = tpo[k*j+i]
après pour utiliser le reste de la texture, les valeurs du tableau à modifier sont contenues dans la boucle suivante
pour k = 0->1024-1
pour j = 800->1024-1
{
tpn[k*j+0] = ? //R
tpn[k*j+1] = ? //G
tpn[k*j+2] = ? //B
tpn[k*j+3] = ? //A
}
A c'est l'alpha, la force d'opacité
A=0 -> complètement transparent
A = 255 -> complètement opaque
il est possible que je me sois trompé et qu'il faille alors inverser width et height