Page 1 sur 1
IMG2HTML - Guillaume Delhumeau
Publié : sam. 29/sept./2007 20:26
par Kwai chang caine
En fouinant sur le web, je suis tombé sur ce code.
Je ne sais pas si il a été déjà posté sur ce forum.
Chez moi, il ne marche pas jusqu'a la fin, mais j'ai trouvé ça joli, donc si ça interesse "quinquin".

autant en faire profiter la communauté.
Il est en 3.94.
Bonne journée
Publié : sam. 29/sept./2007 21:50
par Backup
tiens ça , ça marche !!
Met bien l'extension dans le nom du fichier a la fin au moment de la sauvegarde !!
Code : Tout sélectionner
; ============================================================================
;version Purebasic 4.10 par Dobro
; IMG2HTML - A usefull program
; Copyright (C) 2004 Guillaume Delhumeau
;
; This program is free software; you can redistribute it and/or
; modify it under the terms of the GNU General Public License
; as published by the Free Software Foundation; either version 2
; of the License, Or (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY Or FITNESS For A PARTICULAR PURPOSE. See the
; GNU General Public License For more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; if not, write to the Free Software
; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
; Contact me: keph@laposte.net
; =============================================================================
;- Declaration des procédures
; ---------------------
Declare OpenIMG()
Declare SaveHTML()
UseJPEGImageDecoder()
UsePNGImageDecoder()
;- Constantes
; ---------
#Window = 1
#WinWidth = 260
#WinHeight = 100
#WinTitle = "IMG 2 xHTML Converter"
#ButtonOpen = 1
#ButtonSave = 2
#ButtonQuit = 3
#image = 1
#FileHTML = 1
;- Globales
; -------
Global ImageLoaded.b
ImageLoaded=0
WindowID = OpenWindow(#Window,0,0,#WinWidth,#WinHeight,#WinTitle,#PB_Window_MinimizeGadget | #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar)
If CreateGadgetList(WindowID)
ButtonGadget(#ButtonOpen, 20, 20, 100, 20, "Ouvrir")
ButtonGadget(#ButtonSave, 140, 20, 100, 20, "Convertir")
ButtonGadget(#ButtonQuit, 80, 60, 100, 20, "Quitter")
EndIf
Quit.b = 0
;- Boucle principale
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Gadget = EventGadget()
Select Gadget
Case #ButtonOpen
OpenIMG()
Case #ButtonSave
SaveHTML()
Case #ButtonQuit
Quit=1
EndSelect
EndSelect
Until Quit=1
End
Procedure OpenIMG()
file.s = OpenFileRequester("Selectioner une image", "", "Images (BMP, JPG, PNG)|*.bmp;*.jpg;*.jpeg;*.png", 0)
If LoadImage(#image, file)
ImageLoaded=1
Else
ImageLoaded=0
EndIf
EndProcedure
Procedure SaveHTML()
If ImageLoaded=0
MessageRequester("Erreur","Aucune image n'a été chargé !",0)
Else
file.s = SaveFileRequester("Enregistrer", "", "*.html", 0)
If file
If Right(file,5)<>".html" : file=file+".html" : EndIf
If CreateFile(#FileHTML,file)
WriteStringN(#FileHTML,"<html><head><title>HTML Image</title></head><body bgcolor=#000000><font face='Courier New' size='2'><pre>")
StartDrawing(ImageOutput(#image))
For Y.w = 0 To ImageHeight(#FileHTML)-1 Step 2
For x.w = 0 To ImageWidth(#FileHTML)-1
taux=ImageWidth(#FileHTML)/120
x.w=x.w+taux ;<---- remplace le Step
color = Point(x, Y)
Red.w = Red(color)
Green.w = Green(color)
Blue.w = Blue(color)
HexaColor.s = Hex(Red)+Hex(Green)+Hex(Blue)
WriteString(#FileHTML,"<font color=#"+HexaColor+">"+Str(Random(1))+Str(Random(1))+"</font>")
Next x
WriteStringN(#FileHTML,"")
Next Y
StopDrawing()
WriteStringN(#FileHTML,"</pre></body></html>")
Else
MessageRequester("Erreur","Impossible de creer une page HTML",0)
EndIf
EndIf
EndIf
EndProcedure
Publié : sam. 29/sept./2007 22:08
par Backup
un exemple de ce que ça peut donner
http://michel.dobro.free.fr/Forum_PB/test.html
avec mozilla utilisez Ctrl + roulette souris, pour dézoomer ou zoomer

Publié : sam. 29/sept./2007 22:10
par case
super lent l'affichage de la page
mais sympa ^^
Publié : sam. 29/sept./2007 22:22
par Kwai chang caine
Ouaaahhh !!!!
Nickel DOBRO
C'est genial comme code, tu trouve pas ??
Tu connais ce programmeur ?
C'est marrant, je ne sais pourquoi, mais j'ai l'impression que y'a des freres qui ne viennent pas sur ce forum.
ça me troue le ..... ne savent il pas qu'on y est super bien accueulli et dorloté
Je suis surpris, je pensais qu'au moins tout le monde etait passé par la
Merci de ton aide pour lui, moi, et nous tous qui pourrons profiter de ce code.
PS: Jolie ton DOBRO image en HTML
@CASE
C'est vrai, c'est du lent.
Peut etre trop de petits 1 et 0
Publié : sam. 29/sept./2007 22:26
par Backup
c'est clair qu'il faut utiliser des petites images !!
800x600 , cela fait tout de suite 480000 lettres "0" ou "1"
c'est bien pour cela que l'on a inventé la compression

Publié : sam. 29/sept./2007 22:30
par Kwai chang caine
Ce qui serait bien c'est que ça fasse une image à peut pres de la taille de l'ecran, parce qu'en plus que y'en a des tonnes des 0 et des 1, l'image est encore plus grande et ça fait scroller pour rien

Publié : sam. 29/sept./2007 22:38
par case
oui et le html ca aide pas avec les balises pour les changement de couleur ca augmente tout de suite le poids d'une image
<font color=#F1FFFB>10</font>
ce qui fait 2 'pixels' codes sur 29 bytes soit 232 bits ^^ au lieu de 24 bits par pixel presque 5 fois plus si on code 2 pixel a la fois bien sur
ce qui done pour une image normale non compressee en 800*600
1.440.000 octets
ou
6.960.000 octets
environ pour le format en html
vive les images bitmap

Publié : sam. 29/sept./2007 22:45
par Kwai chang caine
Donc pour bien faire faudrais réduire l'image avant, si je comprend bien, ou bien ça ne sert à rien

Publié : sam. 29/sept./2007 22:52
par Chris
Purée!
Z'avez vu les armoiries du Dobro?
Y serait pas un peu mégalo, par hasard?

Publié : sam. 29/sept./2007 23:05
par Backup
Kwai chang caine a écrit :Ce qui serait bien c'est que ça fasse une image à peut pres de la taille de l'ecran, parce qu'en plus que y'en a des tonnes des 0 et des 1, l'image est encore plus grande et ça fait scroller pour rien

Je viens de modifier le code pour que la largeur s'adapte au format moyen d'un ecran html
revoir l'exemple de visu, qui est aussi adapté !!

Publié : sam. 29/sept./2007 23:13
par Backup
Chris a écrit :
Purée!
Z'avez vu les armoiries du Dobro?
Y serait pas un peu mégalo, par hasard?

figure toi que mon nom de famille (le vrais) a des armoiries !!

comme cela on connaitra en plus mes origines bretonne et normande

Publié : sam. 29/sept./2007 23:25
par Kwai chang caine
@DOBRO
Impecable ......
Cette fois j'arrive à avoir mon image complete.
Merci de ton travail.
En plus tu travaille vite, un vrai courreur cycliste, on pourrais presque dire que quand tu code, tu code le nez dans le "GUESDON".
Pardon, j'ai craqué

Publié : sam. 29/sept./2007 23:28
par Chris
Kwai chang caine a écrit :@DOBRO
Impecable ......
Cette fois j'arrive à avoir mon image complete.
Merci de ton travail.
En plus tu travaille vite, un vrai courreur cycliste, on pourrais presque dire que quand tu code,
tu code le nez dans le "GUESDON".
Pardon, j'ai craqué

Ca compense pour ceux qui codent la tête dans le c...

Publié : sam. 29/sept./2007 23:28
par Kwai chang caine