Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : suppression partielle du contenu d une image [ Archives Visual Basic / API ] (MangaDingue)

mardi 28 juin 2005 à 16:47:10 | suppression partielle du contenu d une image

MangaDingue

salut

voici mon probleme,
j ai un picturebox avec une image et je voudrais enlever une certaine partie de cette image
le but etant d obtenir une image de forme hexagonale
j ai regardé les sources sur le site mais je n ai pas trouvé mon bonheur
si quelqu un pouvait me venir en aide ce serait vraiment cool

merci d avance ++


mardi 28 juin 2005 à 18:01:15 | Re : suppression partielle du contenu d une image

Vincentsoft

Salut,

J'ai peut être une solution mais je peux pas la tester tout de suite, donc je te l'explique mais je te garanti rien.
Il faut parcourir ton image (picturebox) pixel par pixel et noircir ceux qui ne doivent pas être affiché (ceux dont les coordonnées dans l'image n'appartiennent pas à ton hexagone). Pour noircir un pixel dans l'image, il faut utiliser un API, dont j'ai perdu le nom, mais je sais qu'elle existe (un nom comme setPixel ou qqch comme ça). Ou même qu'il y a peut être une fonction dans le picturebox qui le permet directement, je ne sais plus (et je peux pas vérifier, j'ai pas VB ici).

Et pour déterminer les pixels qui doivent être cachés, faut que tu vérifies pendant ton parcours si ses coordonnées appartiennent ou pas à l'hexagone (mathématiquement)...pour le parcours, il faut juste utiliser je pense deux boucles imbriquées qui parcourent la largeur et la longueur.
ensuite, si tu veux enregistrer l'image (pour que le fichier soit modifié aussi), c'est le même principe mais faut parcourir le fichier lui même et non le picture box. Pour les fichier BMP, ça se fait assez bien mais pour les jpg, je sais pas trop, faudrai voir sur le site...

Voilà, je sais pas si je répond bien à ta question, j'espère...

Vincent

mardi 28 juin 2005 à 22:35:29 | Re : suppression partielle du contenu d une image

ProgElecT

'Dans un module

'pour rendre une des couleurs copiées transparente
Public Declare Function TransparentBlt Lib "msimg32.dll" (ByVal hdc As Long, _
ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
                                                          ByVal hSrcDC As Long, _
ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, _
ByVal crTransparent As Long) As Boolean

Public Couleurtransparente As Long

Public HSour, LSour, LeftSour, TopSour As Integer
Public
HDest, LDest, LeftDest, TopDest As Integer


'sur une Form

'1 CommandButton.name = CmdTransparentes
'1 pictureBox.name = PictSource
'1 pictureBox.name = PictFond
'1 pictureBox.name = PictResult
'les 3 pictureBox.ScaleMode = 3 (pixel)
'      pictureBox.AutoRedraw = True


Private Sub CmdTransparentes_Click()
''********* Copie avec couleur transparante ********
    HDest = PictSource.ScaleHeight
    LDest = PictSource.ScaleWidth
    LeftDest = (PictFond.ScaleWidth - PictSource.ScaleWidth) / 2
    TopDest = (PictFond.ScaleHeight - PictSource.ScaleHeight) / 2
    HSour = HDest: LSour = LDest: TopSour = 0: LeftSour = 0

  'charge une image contenu dans un pictureBox(PictFond.Image) pour avoir un fond (dans ton cas image à retailler en forme d'hexagone)
  'sur lequel sera dessiné l'image contenant une couleur devant etre transparente (PictSource) dans ton cas image en 2 couleurs d'un hexagone, l'exagone de couleur ROUGE, l'exterieur noir ou autre

'Couleur a rendre transparente = ROUGE
Couleurtransparente=255

  PictResult.Picture = PictFond.Image: DoEvents 'image forcement d'arriere plan
  'dimmensionne au format de l'image fond
  PictResult.Height = PictFond.Height: PictResult.Width = PictFond.Width

  TransparentBlt PictResult.hdc, LeftDest, TopDest, LDest, HDest, _
                 PictSource.hdc, LeftSour, TopSour, LSour, HSour, Couleurtransparente

  PictResult.Visible = True: PictResult.Refresh
End Select
End Sub


'Ton image dans PictResult sera toujour carré ou rectangulaire, mais 'sera entouré d'un cadre hexagonale de couleur
'noir ou autre
 Salut de ProgElecT




Cette discussion est classé dans : image, suppression, contenu, partielle


Répondre à ce message

Sujets en rapport avec ce message

sauver le contenu d'1form en image.... [ par Fred ] Salut,vous savez dejà à peu près tout...je voudrais donc sauver le contenu d'1 form (Txtbox,bouton,etc...) en format jpg....Auriez vous une idée ??Me Sauver le contenu d'une picture box!! [ par pcpunch ] Sltje place des controles texte (textbox) et un controle image dans une picture box.Je voudrais savoir si il est possible de sauvearger en image le co WebCam Axis [ par Paul07 ] Comment extraire l'image contenu dans un controle fourni par Axis (AxisCameraControl.ocx) pour pouvoir l'afficher dans un picturebox mais sans passer VBscript: suppression contenu d'un repertoire [ par nalis ] Bonjour,comment fait-on pour supprimer le contenu d'un repertoire? je voudrai supprimer tous les fichiers de type *.sxw d'un repertoire...Merci enregistrement d'image dans un fichier [ par cri99 ] Bonjour à tousQuelqu'un aurait-il la méthode pour enregistrer dans un fichier (bmp) le contenu d'un picturebox, contenu créé à partir de la méthode pa Suppression dans une flexgrid [ par sabou94 ] Bonjour,  voila je vous explique : j'ai une flexgrid avec 3colonnes et l'utilisateur peut ajouter des lignes, jusqu'ici tout va bien.Mais voila, je vo Actualiser une PictureBox [ par myarouvb ] Bonjour,Existe t-il une commande ou un procédé pour actualiser le contenu d'une PictureBox?Ma PictureBox affiche l'image image.jpg. Seulement, celle c Impression et suppression d'image [ par pyhrrus1 ] Bonjour j'ai une picturebox ou je visualise les image que je selectionne dans un filebox  et je souhaite pouvoir les supprimées ou les imprimées.comme Image contenu dans un .exe? [ par acteon ] Bonjour a tous, [newbie inside.] Je souhaite créer un programme pour changer le fond d'ecran du pc, j'ai trouver le code sur ce site (merci encore^^). Enregistrer le contenu d'un form en tant que image [ par offfffa ] salut ! j'ai besoin de savoir comment on enregitre le contenu d'un form en tant que image. ma form contient un tableau d'images, la méthode savePictur


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.