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. :roll:
Chez moi, il ne marche pas jusqu'a la fin, mais j'ai trouvé ça joli, donc si ça interesse "quinquin". :wink: 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 !! :D

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 :D

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 8)

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 8O

Merci de ton aide pour lui, moi, et nous tous qui pourrons profiter de ce code.

PS: Jolie ton DOBRO image en HTML :wink:

@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 :D

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 :roll:

Publié : sam. 29/sept./2007 22:52
par Chris
Dobro a écrit :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 :D
Purée!

Z'avez vu les armoiries du Dobro?
Y serait pas un peu mégalo, par hasard? :mrgreen:

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 :D

revoir l'exemple de visu, qui est aussi adapté !! :D

Publié : sam. 29/sept./2007 23:13
par Backup
Chris a écrit :
Dobro a écrit :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 :D
Purée!

Z'avez vu les armoiries du Dobro?
Y serait pas un peu mégalo, par hasard? :mrgreen:

figure toi que mon nom de famille (le vrais) a des armoiries !! :D
comme cela on connaitra en plus mes origines bretonne et normande :lol:


Image
Image
Image

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". :D

Pardon, j'ai craqué :oops:

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". :D

Pardon, j'ai craqué :oops:
Ca compense pour ceux qui codent la tête dans le c... :lol:

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