Aller au contenu

Bitmap pour DCL


Patrick_35

Messages recommandés

Bonjour

 

Je viens de tomber sur ce sujet et là chapeau, des images dans du DCL.

Je dis Monsieur LeeMac :D

 

Ps : Si ce sujet intéresse et se développe, cela pourrait faire l'objet d'un forum pour ceux qui veulent déposer des images.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Ça m’intéresse mais les inscriptions au forum sont désactivées, donc impossible de voir le post.

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Lien vers le commentaire
Partager sur d’autres sites

Ah ok

 

Voici les exemples déposés sur le site Theswamp

http://www.theswamp.org/lilly_pond/leemac/32x32test.png

 

http://www.theswamp.org/lilly_pond/leemac/48x48test.png

 

http://www.theswamp.org/lilly_pond/leemac/textedit.png

 

http://www.theswamp.org/lilly_pond/leemac/arrows.png

 

http://www.theswamp.org/lilly_pond/leemac/textwrap.png

 

http://www.theswamp.org/lilly_pond/leemac/yesno.png

 

Ainsi que le lisp et ses exemples

 

ps : L'auteur est Lee Mac

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjour

 

Et un lisp qui permet de convertir les images bmp au format 24 bits dans une liste compatible avec ceux de Lee Mac

 

(defun bmp(/ act col fic lst nb pal pos str readbinary hexdec inv)

 ; Lecture d'un fichier binaire
 ; Merci à highflyingbird
 ; Trouvé sur TheSwamp.org
 ; http://www.theswamp.org/index.php?topic=36656.msg417089#msg417089
 ; Modifié par Patrick_35 pour positionner le début de la lecture et la longueur à lire
 ; ReadBinary (fichier position longueur)

 (defun readbinary (fichier position longueur / str wsObj)
   (setq wsObj (vlax-create-object "ScriptControl"))
   (or position
     (setq position 0)
   )
   (if (or (not longueur) (zerop longueur))
     (setq longueur (- (vl-file-size fichier) position))
   )
   (vlax-put wsObj "language" "VBS")
   (setq str
     (strcat
      "Function ReadBinary(fichier)
Const adTypeBinary = 1
Dim stream, xmldom, node
Set xmldom = CreateObject(\"Microsoft.XMLDOM\")
Set node = xmldom.CreateElement(\"binary\")
node.DataType = \"bin.hex\"
Set stream = CreateObject(\"ADODB.Stream\")
stream.Type = adTypeBinary
stream.Open
stream.LoadFromFile fichier
stream.Position = " (itoa position) "
node.NodeTypedValue = stream.Read(" (itoa longueur) ")
stream.Close
Set stream = Nothing
ReadBinary = node.Text
Set node = Nothing
Set xmldom = Nothing
End Function"
     )
   )
   (vlax-invoke wsObj 'ExecuteStatement str)
   (setq str (vlax-invoke wsObj 'run "ReadBinary" fichier))
   (vlax-release-object wsObj)
   str
 )

 (defun hexdec (nb / r i s) 
   (if (= (type nb) 'INT)
     (setq nb (itoa nb))
   )
   (setq r 0 i 0)
   (while (and (= (type nb) 'STR) (< i (strlen nb)))
     (setq i (1+ i)
    s (strcase (substr nb i 1 ))
    r (+ (lsh r 4) (- (ascii s)
		      (if (<= s "9")
			48
			55
		      )
		    )
      )
     )
   )
 )

 (defun inv(str / nb txt)
   (setq nb 1 txt "")
   (while (< nb (strlen str))
     (setq txt (strcat (substr str nb 2) txt)
    nb (+ nb 2)
     )
   )
   txt
 )

 (and (setq fic (getfiled "Veuillez sélectionner un fichier BMP" "" "bmp" 16))
   (progn
     (setq col (vlax-create-object (strcat "AutoCAD.AcCmColor." (substr (getvar 'ACADVER) 1 2)))
    pos (hexdec (inv (readbinary fic 10 4)))
    bit (hexdec (inv (readbinary fic 28 4)))
    str (readbinary fic pos nil)
    nb 1
     )
     (cond
((eq bit 24)
  (while (< nb (strlen str))
    (vla-setrgb col (hexdec (substr str (+ nb 4) 2))
		    (hexdec (substr str (+ nb 2) 2))
		    (hexdec (substr str nb 2))
    )
    (setq act (vla-get-colorindex col)
	  nb (+ nb 6)
    )
    (if (eq act 7)
      (setq lst (cons -15 lst))
      (setq lst (cons act lst))
    )
  )
)
(T
  (princ "\nLe lisp ne fonctionne qu'avec des images 24 bits\n")
)
     )
     (vlax-release-object col)
   )
 )
 lst
)

 

Exemple

(setq Ma_variable (bmp))

 

ps : si j'ai un peu de temps, je regarderai pour des images 256, 16 couleurs et monochrome

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

  • 2 ans après...

Salut

 

Tout est expliqué dans le lien de la réponse #3.

L'idée esr de générer un txt (ou une liste) depuis un bmp pour ensuite utiliser la routine LM:DisplayBitmap qui appel la fonction vector_image

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité