Créer un logo en utilisant le ServiceWeb Xara3D

selkis

Comment créer un logo 3D en utilisant le Service Web distant de Xara3D. ♪

Télécharger le code source commenté exemple en vb.net Créer votre logo 3D [ftp://www.ftp-developpez.com/selkis/fichiers/PrjWebSrvxara.zip]

- Titre : Créer un logo en utilisant le ServiceWeb Xara3D

- Auteur : selkis

- Parution : 18 mars 2005

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2005 selkis. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Ajouter une référence Web

- III. Utiliser la référence

- IV. En savoir plus sur les Services Web

I - Introduction

Un service Web est un composant écrit dans différents langages et déployé sur toutes les plateformes, accessible par une URI dont l’interface est définie en XML.

Il propose aux applications de faire appel à ses services et ainsi permettre de simplifier l’échange de données entre eux.

Dans cet exemple nous utiliserons le Service Web gratuit RenderServer3D du site ws.xara.com disponible à cette adresse.

Il nous permet de créer une bannière 3d de différents types suivant les paramètres passés

II - Ajouter une référence Web

Positionnez-vous dans l’explorateur de solutions, faites un clic droit sur « Référence » et sélectionnez « Ajouter une référence Web ».

Vous devez saisir l’adresse de la référence dans la barre d’adresse et cliquer sur la petite flèche verte.

La référence va se télécharger et vous afficher les méthodes disponibles soit :

GetExportTypes() qui nous permet de récupérer sous forme d’array la liste des extensions de sortie possibles ;

GetFonts() qui nous permet de récupérer sous forme d’array la liste des polices disponibles ;

GetTemplates() qui nous permet de lister sous forme d’array les modèles disponibles ;

RenderUrl() qui nous permet, grâce à des paramètres envoyés de type string de récupérer l’adresse URL de sortie de notre logo.

Il ne vous reste plus qu’à cliquer sur le bouton [Ajouter la référence] pour voir apparaître dans votre explorateur de solutions, la Référence.

III - Utiliser la référence

La manière de procéder est très simple, nous allons lister les polices, templates, extensions de sortie possibles fournis par le service.

Lui indiquer le texte, la couleur du texte son fond, sa taille et lancer la requête.

Il ne nous restera plus qu’à attendre la réponse du service et récupérer notre logo via une URL.

Voici la méthode utilisée pour lister les polices disponibles.

Il en va de même pour lister les templates et les extensions.

La première chose à faire est de déclarer une instance de la classe RenderServer3D, soit :

Dim InstXara As New com.xara.ws.RenderServer3D

Le reste est très simple, on récupère le tableau des polices par la propriété GetFonts de l’instance, et un simple parcours de tableau suffit à remplir notre zone de liste. Soit :

Try
'Récupère la liste des polices disponibles
Dim Fonts As Array = InstXara.GetFonts
'parcours de la liste des polices
Dim i As Integer
For i = 0 To Fonts.Length - 1
Listbox1.Items.Add(Fonts.GetValue(i))
Next i
Catch ex As Exception
'si erreur
MsgBox(ex.Message, MsgBoxStyle.Information)
Exit Sub
End Try

La méthode RenderUrl() quant à elle est différente, car elle attend des valeurs en paramètre pour créer notre logo et nous retourner l’URL de ce dernier.

Les paramètres attendus sont :

le template : de type string, ce doit être un élément du tableau retourné par la méthode GetTemplates ;

le texte : de type string, c’est le texte du logo, au choix de l’utilisateur ;

la couleur du texte : bgcolor, sans le #, au choix de l’utilisateur ;

la couleur du fond : bgcolor, sans le #, au choix de l’utilisateur ;

la police : de type string, ce doit être un élément du tableau retourné par la méthode GetFonts ;

la taille de la police : de type string, au choix de l’utilisateur ;

l’extension de sortie : de type string, ce doit être un élément du tableau retourné par la méthode GetExportTypes ;

la longueur du logo : string, au choix ;

la hauteur du logo : string, au choix.

Voici le code vb.net correspondant :

'affectation des valeurs nécessaires à l’envoi des données
Dim modele, texte, couleurtexte, couleurfond, police, taillepolice, sorti, longueur _
hauteur, logoSortie As String
modele = "Arial round"
texte = "Mon logo"
couleurtexte = "000000"
couleurfond = "FFFFFF"
police = " Arial "
taillepolice = " 20 "
sorti = " .jpg "
longueur = 150
hauteur = 60
'recuperation de l’URL du fichier de sortie
logoSortie = InstXara.RenderURL(modele, texte, couleurtexte, couleurfond, police, taillepolice, sorti, longueur, hauteur)

logoSortie contient le chemin https de votre logo, il ne vous reste plus qu’à le récupérer par la méthode DownloadFile de la classe Web client.

Voici le code source correspondant :

'Extraction du nom de fichier à partir de l’URL
Dim pos As Integer
pos = InStrRev(Trim(logoSortie), "/", -1, 1)
Dim fichier As String = Mid(Trim(logoSortie), pos + 1)

'creation d’une instance webclient
Dim web1 As System.Net.WebClient
web1 = New WebClient
Try
'telecharge le fichier
web1.DownloadFile(logoSortie, fichier)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try

Une fois le fichier récupéré, il suffit de l’afficher dans une picturebox, et cela très simplement en créant une instance d’un bitmap, soit :

Dim img As Image
img = New Bitmap(Application.StartupPath & "\" & lelogo)
PictureBox1.Image = CType(img, Image)

IV - En savoir plus sur les Services Web

Vous pouvez télécharger l’exemple du tutoriel ServiceWebXara ici [ftp://www.ftp-developpez.com/selkis/fichiers/PrjWebSrvxara.zip] (écrit en vb.net).

Références

Créer et consommer un service web avec .NET Stéphane Eyskens

Introduction aux WebServices en .NET (c#) Par LEBRUN Thomas

WebServices avec Delphi 6 Entreprise Antony ZANETTI (TeamB-FR)

Qu’est-ce qu’un web services

Web services sur Msdn France