|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 (permalink) |
|
Messages: n/a
Hébergeur: |
Bonsoir la communauté,
J'aimerais dans mes fichiers HTA générer dynamiquement des images avec le module 'PIL' . Malheureusement la balise '<img src=' /> n'accepte qu'un nom de fichier. Quelqu'un aurait-il une idée sans utiliser 'print content-type...' avec le module CStringIO ? J'espère avoir été clair... CCordialement Salvatore |
|
|
|
#2 (permalink) |
|
Messages: n/a
Hébergeur: |
Bonsoir !
Ah ! la ! la ! J'ai longtemps cherché, sans succès. Avec Opera (et Firefox), il est possible de mettre du base64 dans une URL ; exemple : <img src="data:image/gif;base64, R0lGODlhAwEgAPcAAP///87OzqWlpYSEhHNzc2tra1paWiEYGP9CGP8xAL1SEN6thO+cQv+ E AP/OGP/OAM7Oxr29xjEA/2MA/5wA/+8A/+dK79573talzv8AnO9KjP8AY+eEnO9SY/8AGAAA ... Mais, ça ne marche pas avec IE, et donc pas avec les .HTA. J'ai cherché deux autres voies (en fait deux versions du même trucs) : - lors d'envoi d'e-mails-art intégrant des images ("payload"), l'image est encodée en base64 et accompagne ainsi le message - en sauvegardant une page (web/html) contenant une image, sous le format .MHT (archive-Web), tout est inclus dans le document (image en base64). Malheureusement, je n'ai pas trouvé de moyen de lier ça à une page en cours d'utilisation. Bref, si tu trouves un moyen, ça m'intéresserait beaucoup ! @+ Michel Claveau |
|
|
|
#4 (permalink) |
|
Messages: n/a
Hébergeur: |
On 24-10-2007, Salvatore wrote:
> Bonsoir la communauté, > > J'aimerais dans mes fichiers HTA générer dynamiquement > des images avec le module 'PIL' . > Malheureusement la balise '<img src=' /> n'accepte qu'un nom de > fichier. > Quelqu'un aurait-il une idée sans utiliser 'print content-type...' > avec le module CStringIO ? Quel est le problème avec print content-type ? C'est fait pour... -- William Dodé - http://flibuste.net Informaticien indépendant |
|
|
|
#6 (permalink) |
|
Messages: n/a
Hébergeur: |
On 24-10-2007, Méta-MCI (MVP) wrote:
> Bonsoir ! > > Je pense que les propos de Salvatore sont flous. Il veut pouvoir mettre/manipuler/visualiser une > image dans une page HTML (ici dans un .HTA), sans passer par un fichier disque. Justement, en changeant le content-type ça se fait très bien sans passer par un fichier disque... Par ex je fait qq chose comme ça pour envoyer des icones : gifs {"print":'''\ R0lGODlhEAAOAIQAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwM DcwKbK8N7e3gB7AAD/ACkx/ylj /1paWoSEhK21rb29vc7Ozt7e3ufv5/f39////////////////////////////////////yH5BAEA AB8ALAAAAAAQAA4AAAVT4CeKUGma4whNVutOQEpaTl1bsby6b5 5CloZQiAMYVSxeCwBhxk7QkpPp UlgVk6yzGY0yuS1rVkDWNj9AcZbB1h6N8Hj8kQNYrthJJAKgp+ SAIyEAOw== ''',} self.content_type = "image/gif" self.echo(base64.decodestring(g)) -- William Dodé - http://flibuste.net Informaticien indépendant |
|
|
|
#7 (permalink) |
|
Messages: n/a
Hébergeur: |
Bonjour,
Effectivement je n'ai pas été très clair :-) J'utilise effectivement un fichier .hta et je ne passe pas par un serveur. Voici l'exemple: <code> #http://lost-theory.org/python/dynamicimg.html import Image,ImageDraw import cStringIO from random import randint as rint def randgradient(): img = Image.new("RGB", (300,300), "#FFFFFF") draw = ImageDraw.Draw(img) r,g,b = rint(0,255), rint(0,255), rint(0,255) dr = (rint(0,255) - r)/300. dg = (rint(0,255) - g)/300. db = (rint(0,255) - b)/300. for i in range(300): r,g,b = r+dr, g+dg, b+db draw.line((i,0,i,300), fill=(int(r),int(g),int(b))) f = cStringIO.StringIO() img.save(f, "PNG") print "Content-type: image/png\n" f.seek(0) print f.read() #Ici je désire mettre à jour le "<div id='centre>" def displayImage(): setValue('centre',r"<img src='%s'/>"%randgradient()) </code> La partie qui pe pose problème est : print "Content-type: image/png\n" f.seek(0) print f.read() Je ne peux pas utiliser 'print' dans ce script. Quel valeur de retour puis-je renvoyer ? Salvatore William Dode a écrit : > On 24-10-2007, Méta-MCI (MVP) wrote: >> Bonsoir ! >> >> Je pense que les propos de Salvatore sont flous. Il veut pouvoir mettre/manipuler/visualiser une >> image dans une page HTML (ici dans un .HTA), sans passer par un fichier disque. > > Justement, en changeant le content-type ça se fait très bien sans passer > par un fichier disque... Par ex je fait qq chose comme ça pour envoyer > des icones : > > gifs {"print":'''\ > R0lGODlhEAAOAIQAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwM DcwKbK8N7e3gB7AAD/ACkx/ylj > /1paWoSEhK21rb29vc7Ozt7e3ufv5/f39////////////////////////////////////yH5BAEA > AB8ALAAAAAAQAA4AAAVT4CeKUGma4whNVutOQEpaTl1bsby6b5 5CloZQiAMYVSxeCwBhxk7QkpPp > UlgVk6yzGY0yuS1rVkDWNj9AcZbB1h6N8Hj8kQNYrthJJAKgp+ SAIyEAOw== > ''',} > > self.content_type = "image/gif" > self.echo(base64.decodestring(g)) > > |
|
|
|
#8 (permalink) |
|
Messages: n/a
Hébergeur: |
Michel,
A force de manipuler ces fichiers je finis par me mélanger les pinceaux. Je ne parviens même pas à ouvrir un simple fichier texte pour afficher le contenu dans un "div" !!! Michel, peux-tu me dire si tu y parviens ? merci. def setValue(divid,data): elt = document.getElementById(divid) elt.innerHTML = data def test(): f = open('/test.txt').read() setValue('centre',f) Cordialement Salvatore a écrit : > Bonsoir ! > > Je pense que les propos de Salvatore sont flous. Il veut pouvoir > mettre/manipuler/visualiser une image dans une page HTML (ici dans un > .HTA), sans passer par un fichier disque. > > @+ > > MCI > |
|
![]() |
| Outils de la discussion | |
|
|