Accueil > Forum > > > > Transparence d'image
Transparence d'image
jeudi 15 février 2007 à 19:59:00 |
Transparence d'image

Kite37
|
Bonjour!
Alors voici mon problème, qui parait assez simple mais qui est un vrai casse tête depuis quelques jours :( :
Pour les besoins d'un logiciel, je dois afficher une image (sur fond transparent) dans une picturebox.
Déja, premier problème : l'image, lorsqu'elle est chargée et affichée se vois modifiée ..
Ensuite, lorsque l'utilisateur clique sur cette picturebox, via un calcul je dois sélectionner une zone précise de l'image (une case de 16*16 pixel).
Lors de l'affichage du morceau sélectionné dans une autre picturebox prévue a cet effet, la taille s'en retrouve totalement modifiée .. je me retrouve avec un truc minuscule, et donc inutilisable..
Et le plus étrange dans tout cela, c'est que ce problème n'aparrait qu'avec des image transparente, et non avec d'autres images ..
Quelqu'un peut-il me dépanner?
|
|
jeudi 15 février 2007 à 21:27:21 |
Re : Transparence d'image

Anotine
|
Donnes nous d'abord une explication plus precise : Un petit morceau de code, le comportement de cette modification .. Peut-être est-ce un problème avec les couches alpha de ton image transparente ?! ... Il nous faut du code !
La programmation est l'art de mettre 15 jours pour gagner quelques millisecondes ...
|
|
jeudi 15 février 2007 à 21:40:43 |
Re : Transparence d'image

jmfmarques
|
Tu ne nous dis bien évidemment pas tout !
Si tu utilises une fonction de l'Api de Windows : quelle est cette fonction ? Tu parles curieusement d'une "une image (sur fond transparent)" ! Qu'est-ce que celà veut dire ? (rien pour moi, même si je "devine un peu" )
Montre ton code, en effet, y compris et surtout celui de la déclaration de la fonction gérant ta "transparence"...
Une chose est certaine : si par "transparence de fond", tu veux dire en fait "une couleur qui, déclarée "transparente", sera ignorée; l'image de ta pictureBox risque fort de ne pas être transformée "au fond" mais seulement en "apparence".
Si... et si... et si, encore... Mais on peut aller très loin avec tout ces "si".... seul ton code commenté "nous parlera".... et les conseils viendront alors... pas avant.
|
|
vendredi 16 février 2007 à 18:12:45 |
Re : Transparence d'image

Kite37
|
hmm je ne pense pas que le code puisse vous aider énormément, mais soit :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'on load deux copie de l'image en mémoire
biblio = RecupImage(chemin & "\tiles.png")
biblioSansgrille = RecupImage(chemin & "\tiles.png")
'sur la première on trace le quadrillage afin de choisir les morceau d'images voulues
biblio_graphic = Graphics.FromImage(biblio)
For i As Integer = 0 To biblio.Width Step 16
biblio_graphic.DrawLine(Pens.Green, i, 0, i, biblio.Height)
Next
For i As Integer = 0 To biblio.Height Step 16
biblio_graphic.DrawLine(Pens.Green, 0, i, biblio.Width, i)
Next
biblio_graphic.DrawImage(biblio, 0, 0)
'et on l'affecte a la picturebox
picTile.Image = biblio
end sub
voici la function recupimage en question :
Private Function RecupImage(ByVal chemin As String) As Bitmap
'cette sub récupère des images (ici utilisée pour récupérer celle du monstre et celle du joueur)
'en un minimum de temps, tout en libérant au plus vite la mémoire
Dim originale As Bitmap = New Bitmap(chemin)
Dim copie As Bitmap = New Bitmap(originale.Width, originale.Height)
Dim g As Graphics = Graphics.FromImage(copie)
g.DrawImage(originale, 0, 0)
g.Dispose()
originale.Dispose()
Return copie
End Function
a noter que même avec image.Fromfile, le chargement de l'image dont le fond est DEJA transparent dans le fichier de base ne marche pas ..
voici ensuite le code qui se produit lorsque l'on clique sur la picturebox contenant l'image quadrillée :
Private Sub picTile_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picTile.MouseClick
'on retrouve les coordonnées du clique de la case
Dim Xclick As Long = Int(Int(e.X) / 16)
Dim Yclick As Long = Int(Int(e.Y) / 16)
'on l'affecte a la picturebox permettant le controle de la zone selectionnée
bit_CurTile = RecadrerImage(biblioSansgrille, New Rectangle(Xclick * 16, Yclick * 16, 16, 16))
picCurTile.Image = bit_CurTile
End Sub
et enfin voici la function recadrerImage :
Private Function RecadrerImage(ByVal ImgSource As Image, ByVal Rect As Rectangle) As System.Drawing.Image
'cette sub permet de récupérer une portion d'un bitmap sans le prendre dans son intégralité
If ImgSource IsNot Nothing Then
Dim ImgOut As System.Drawing.Image = New System.Drawing.Bitmap(Rect.Width, Rect.Height, ImgSource.PixelFormat)
Dim Graphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(ImgOut)
Graphics.DrawImage(ImgSource, 0, 0, Rect, System.Drawing.GraphicsUnit.Pixel)
Return ImgOut
End If
Return Nothing
End Function
Anoter que lorsque j'utilise des image normal, ce code marche parfaitement, mais que cela ne va plus avec les image dont le fond est DEJA transparent .. et devoir gérer cela par code impliquerait beaucoup de travail niveau PC, et celle-ci est précieusecar le logiciel globale peut etre assez gourmant ..
Voilou
|
|
vendredi 16 février 2007 à 19:23:19 |
Re : Transparence d'image

Anotine
|
Ton code fonctionne très bien chez moi ... même avec une image transparente. C'est à rien y comprendre ! Dis moi si je me trompe : Lorsque tu clique sur une partie de l'image picTile l'image picCurTile doit afficher le petit bout de l'image que tu as cliqué !? Dans ce cas ça marche très bien ... (VS 2005 - Framework 2 et toutes les mises à jour)
Bonne continuation
La programmation est l'art de mettre 15 jours pour gagner quelques millisecondes ...
|
|
vendredi 16 février 2007 à 20:19:28 |
Re : Transparence d'image

Kite37
|
arf bah moi ça ne veut pas marcher :s j'utilise aussi VS 2005 framework 2 mis a jour ..
bon bah ça vient peut être du fichier lui meme, les .png sont peut etre mal géré si transparents :s
Tant pis je continuerais a chercher, merci quand meme :)
|
|
samedi 17 février 2007 à 11:24:09 |
Re : Transparence d'image

Anotine
|
Essaye d'enlever les meusures dans ton code :
Au lieu de : Private Function RecadrerImage(ByVal ImgSource As Image, ByVal Rect As Rectangle) As System.Drawing.Image ' Cette fonction permet de récupérer une portion d'un bitmap sans le prendre dans son intégralité If ImgSource IsNot Nothing Then Dim ImgOut As System.Drawing.Image = New System.Drawing.Bitmap(Rect.Width, Rect.Height, ImgSource.PixelFormat) Dim Graphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(ImgOut) Graphics.DrawImage(ImgSource, 0, 0, Rect, System.Drawing.GraphicsUnit.Pixel) Return ImgOut End If Return Nothing End Function
Essaye : Private Function RecadrerImage(ByVal ImgSource As Image, ByVal Rect As Rectangle) As System.Drawing.Image ' Cette fonction permet de récupérer une portion d'un bitmap sans le prendre dans son intégralité If ImgSource IsNot Nothing Then Dim ImgOut As System.Drawing.Image = New System.Drawing.Bitmap(Rect.Width, Rect.Height) Dim Graphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(ImgOut) Graphics.DrawImage(ImgSource, 0, 0, Rect) Return ImgOut End If Return Nothing End Function
En espérant que ça marche !
|
|
Cette discussion est classée dans : problème, image, picturebox, transparence, modifiée
Répondre à ce message
Sujets en rapport avec ce message
Problème sur le traitement de l'image : besoin d'un peu d'aide ... [ par copyrightx ]
Voilà j'ai une image dans un picturebox et une fonction api nommée "TransparentBlt". Cette fonction permet de copier une image avec une couleur transp
Problème de Picturebox [ par cire2003 ]
Lorsque je mets un picturebox dans ma fenêtre, je me retrouve avec un arrière plan gris (celui par default). En ce qui me concerne, je mets une image
transparence image [ par le pro masterchief ]
Bonjour j'ai une question pour vous:Je programme un jeux de mario que j'avais déjà fait en vb6 et jai voulu utiliser l'utilitaire de migration de vb20
Problème avec le PictureBox [ par gibea00 ]
Bonjour !J'ai un problème avec un de mes pictureBox. Je veux mettre une image de type Bmp à l'intérieur de mon pictureBox. Es-ce qu'il y a un moyen
Problème de transparence [ par Kami1357 ]
Bon voilà le topo, j'ai une image qui est sencé se balader dans le Form mais cette image doit avoir un fond trasparent. J'ai d'abord utilisé un GIF a
problème d' enregistrement [ par CYBOR2000 ]
bjr a tous.mon problème :mon programme fusionne 2 images ds 2 picturebox ds 1 pictureboxen dessous, y a un bouton pour l' enregistrer l' image obtennu
Problème pour l'autoredraw et le save [ par drnicholas001 ]
Salut, grâce à votre aide j'ai réussis à faire que l'autoredraw n'e redessine pas sur l'image précédente dans la picturebox et à enresgistrer mon imag
Position de l'image dans une picturebox [ par arnakor ]
SalutVoilà mon problème. Je suis en train de réaliser un jeu d'échecs avec des picturebox (car on peut pas mettre de fond dans les imagebox). Pour les
problème avec le controle picturebox et image [ par psychodingue ]
j'arrive pas à foutre une image dans l'un de ces 2 controle, ça me dit que l'image est invalide, alors que acdsee l'ouvre très bien...voilà, merci pou
Transparence d' une picturebox [ par Fripouil ]
Bonjour,Voila en quoi se résume mon probléme.J' ai une picture box ( donc carré ) et mon image ( un rond ).Est il possible d' adapter la picturebox en
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|