DARK BASIC

3) Création ,chargement et utilisation des images

Qu-est ce qu'une image ?
Une image est un bitmap que l'ordinateur peux utiliser pour des opérations très diverses. On peut charger une image (si elle est dans un répertoire ), en créer une (et sauver sur le disque) ou l'utiliser dans un "sprite" ou pour texturer un objet
=[ les formats acepté: BMP TGA PGN JPG JPEG GIF ]= ( les mêmes que les bitmaps)

Combien en existe t-il?
Vous pouvez charger 65535 images en même temps! Il faut néanmoins que leur "numéro" soit situé entre 1 et  65535. L'image 0 est ce qui est affiché à l'écrant. Donc si vous la sauvez, cela revient à appuyer sur la touche "Imprime écran" de votre clavier (au dessus d'inser).

Comment les utiliser?
Pour charger une image, il faut écrire : load image "nom_de_l_image.bmp",numéro_de_l'image en remplaçant bien évidemment par vos valeurs (par ex: load image "texture.bmp",1 )

Pour sauver une image, il faut écrire : save image "nom_de_l_image.bmp",numéro_de_l'image en remplaçant bien évidemment par vos valeurs (par ex: save image "texture02.bmp",1 )

Oui mais à quoi ça sert?
A modifier vos images et leur appliquer des effets (comme un flou, un renversement, un assombrissement ...)

Pour illustrer ces explications, voici un programme : une image chargée chargée vas être modifiée pendant un certain temps. ( il faut néanmoins télécharger l'image suivante et la mettre dans le dossier du programme ; vous pouvez copier/coller ce programme dans dark basic)

rem sprite
rem on efface l'écran en blanc
cls rgb(255,255,255)
ink rgb(0,0,0),rgb(255,255,255)
rem on charge le bitmap dans une image
load image "test.bmp",1
rem début de la première boucle
for a=0 to 100
rem sprite aux positions de la souris
sprite 1,mousex()-72,mousey()-72,1
rem chrono:
text 0,0,"sprite suivant la souris:"+str$(a)+"% du temps"
rem on efface
cls
rem fin de la première boucle
next a
rem on place le sprite en 0,0
sprite 1,-1,-1,1
rem début de la deuxième boucle
for a=0 to 100
rem sprite aux positions de la souris
size sprite 1,mousex(),mousey()
rem chrono:
text 0,0,"zoom du sprite avec la souris:"+str$(a)+"% du temps"
rem on efface
cls
rem fin de la deuxième boucle
next a

 

dans ce programme :
L'image 1 est l'image téléchargée plus haut.
Le sprite 1 est l'image 1 déformée ou déplacée.

Et un petit rendu du programme :

Commandes et syntaxe relative à ce tutorial :

LOAD IMAGE "Nom de l'image .BMP"numéro d'image : Sert à charger une image (au format BMP, TGA, JPG(ou JPEG), PNG, GIF(mais les animations seront perdues) )
SAVE IMAGE "Nom de l'image .BMP", numéro d'image : Sert à sauvegarder une image sur le disque dur

SPRITE numéro de sprite, PositionX, PositionY, numéro d'image : Sert à attribuer le statut de sprite à une image; vous pouvez ainsi l'étirer, la réajuster, la déplacer sur l'écran ...
REM : Un sprite sera affiché DEVANT tout les objets3D, images, bitmaps ...

MOUSEX() : position sur l'axe X du curceur
MOUSEY() : position sur l'axe Y du curceur

STR$(variable) : Convertit la valeur d'une variable en chaîne (String).
VAL(chaîne) : Convertit la valeur d'une chaîne (String) en variable.