Accueil > > > IMAGE REFLECT - GÉNÉRER LE REFLET D'UNE IMAGE
IMAGE REFLECT - GÉNÉRER LE REFLET D'UNE IMAGE
Information sur la source
Description
C'est une petite DLL qui génère une image ou il y a l'image originale et son reflet en dessous qui s'estompe progressivement. Le principe est simple : on créé une image, on dessine l'image originale, on dessine l'image originale pivotée de 180° avec une symétrie horizontale. On applique ensuite un dégradé Transparent->Couleur d'arrière-plan sur la deuxième partie de l'image.
Source
- Public Shared Function GetImageReflect(ByVal OriginalImage As Image, ByVal PercentOfHeight As Double, ByVal BackColor As Color) As Image
- 'On teste les arguments
- If OriginalImage Is Nothing Then Throw New ArgumentNullException("OriginalImage")
- 'On créé une image de la même largeur que l'image d'origine et la hauteur nécéssaire pour faire rentrer le reflet
- Dim img As Image = DirectCast(New Bitmap(OriginalImage.Width, CInt(OriginalImage.Height + (OriginalImage.Height * PercentOfHeight))), Image)
- 'On créé un objet Graphics pour le dessin
- Dim gr As Graphics = System.Drawing.Graphics.FromImage(img)
- 'On dessine l'image originale
- gr.DrawImage(OriginalImage, New Rectangle(0, 0, img.Width, OriginalImage.Height))
- 'On déclare la variable pour le reflet a partir de l'image originale
- Dim reflect As Image = DirectCast(OriginalImage.Clone, Image)
- 'On pivote l'image de 180° avec symétrie horizontale
- reflect.RotateFlip(RotateFlipType.Rotate180FlipX)
- 'Et on dessine le reflet en dessous de l'image originale
- gr.DrawImage(reflect, New Rectangle(0, OriginalImage.Height, OriginalImage.Width, OriginalImage.Height))
- 'On créé un dégradé Transparent en haut et de la couleur de l'arrière-plan en bas
- Dim gradient As New Drawing2D.LinearGradientBrush(New Point(0, 0), New Point(0, img.Height), Color.Transparent, BackColor)
- 'On dessine un rectangle sur le reflet
- gr.FillRectangle(gradient, New Rectangle(0, OriginalImage.Height, OriginalImage.Width, img.Height - OriginalImage.Height))
- 'On supprime les objets
- gr.Dispose()
- gr = Nothing
- reflect.Dispose()
- reflect = Nothing
- gradient.Dispose()
- gradient = Nothing
- 'On retourne l'image
- Return img
- End Function
Public Shared Function GetImageReflect(ByVal OriginalImage As Image, ByVal PercentOfHeight As Double, ByVal BackColor As Color) As Image
'On teste les arguments
If OriginalImage Is Nothing Then Throw New ArgumentNullException("OriginalImage")
'On créé une image de la même largeur que l'image d'origine et la hauteur nécéssaire pour faire rentrer le reflet
Dim img As Image = DirectCast(New Bitmap(OriginalImage.Width, CInt(OriginalImage.Height + (OriginalImage.Height * PercentOfHeight))), Image)
'On créé un objet Graphics pour le dessin
Dim gr As Graphics = System.Drawing.Graphics.FromImage(img)
'On dessine l'image originale
gr.DrawImage(OriginalImage, New Rectangle(0, 0, img.Width, OriginalImage.Height))
'On déclare la variable pour le reflet a partir de l'image originale
Dim reflect As Image = DirectCast(OriginalImage.Clone, Image)
'On pivote l'image de 180° avec symétrie horizontale
reflect.RotateFlip(RotateFlipType.Rotate180FlipX)
'Et on dessine le reflet en dessous de l'image originale
gr.DrawImage(reflect, New Rectangle(0, OriginalImage.Height, OriginalImage.Width, OriginalImage.Height))
'On créé un dégradé Transparent en haut et de la couleur de l'arrière-plan en bas
Dim gradient As New Drawing2D.LinearGradientBrush(New Point(0, 0), New Point(0, img.Height), Color.Transparent, BackColor)
'On dessine un rectangle sur le reflet
gr.FillRectangle(gradient, New Rectangle(0, OriginalImage.Height, OriginalImage.Width, img.Height - OriginalImage.Height))
'On supprime les objets
gr.Dispose()
gr = Nothing
reflect.Dispose()
reflect = Nothing
gradient.Dispose()
gradient = Nothing
'On retourne l'image
Return img
End Function
Conclusion
Si jamais quelqu'un a une idée pour remplacer la couleur d'arrière-plan par une sorte de "brush" transparent...
Historique
- 09 juillet 2009 19:31:26 :
- Mais ou est passée la capture d'écran ?
- 09 juillet 2009 19:33:28 :
- Petit problème de source
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Sorties graphiques un un picture [ par paskal ]
'Jour m'sieurs et dams...Une petite question très bête : Sur une feuille, j'ai une 'image' placée dans un 'frame'....L'action d'un bouton également su
Comment enregistrer une forme en une image de type graphique (bmp,jpg...) ? [ par muzza ]
Question dans le sujet merci
Image et graphique [ par ERICVB7 ]
Bonjour,Je programme en VB.NET (sous XP) et je cherche un code source me permettant de remplir une zone de couleur uniforme dans une image (type bitma
Graphique [ par simofid ]
Je me demande comment changer la taille d'une image, ex:Nous avons une image (foto.jpg) de taille 800x600 et nous voulons transformer sa taille et la
Exporter un graphique excel [ par Draconagi ]
Voila j'ai un document excel sur lequel il y a plusieurs tableaux et je génére un graphique à partir de ceux la. Le graphique est sur s
Sauver, restaurer image graphique ecran Vb2005 [ par alainvolatile ]
Bonjour à tous, <P class=MsoNormal style="MARGIN: 0cm
Export de ChartObjects [ par nil69 ]
Bonjour, je cherche a pouvoir exporter un ChartObject figurant dans une feuille excel. Alors que pour les Charts, il existe une méthode Export,
Reflet dynamique d'une image [ par bolandfranck ]
Salut à tous,Je vais essayer d'être clair dans mes propos. On voit de plus en plus de logo avec un refflet comme celui de "http://www.deezer.com" (Hau
Comment exporter un graphique en fichier image ? [ par GetheBeber ]
Bonjour à tous,Malgré bien des efforts, je n'arrive pas à trouver comment exporter un graphique (contrôle MSChart) en fichier imag
Comment enregistrer une form en une image de type graphique (bmp,jpg...) ? [ par sbouquet ]
Ben voila la question est dans le sujet, j'ai vu qu'elle avait deja était posée de la meme facon mais personne n'avait repondu et comme j'ai le meme p
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
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 Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|