CIL --> CameleonTH Image Library

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
CameleonTH
Messages : 333
Inscription : sam. 25/juin/2005 11:18
Localisation : Laon (02)
Contact :

CIL --> CameleonTH Image Library

Message par CameleonTH »

Ba voila ma librairie pour faire quelque effets sur les images, c'est la premiere version mais j'essairais d'ajouter des effet (j'ai bien dit essayer :D )

http://pagesperso.aol.fr/cameleonth/CIL.rar

Laisser vos impressions ou si sa bug. :D

Merci


Au faite pour l'installer c'est simple il suffit de glisser le fichier CIL dans Userlibrary et d'extraire les 3 images et le fichier exemple.pb dans un repertoire et le tour et jouer. Les images de test sont enregistrer au format BMP dans le dossier "C:\test\"
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

J'ai testé te ça marche bien.
Par contre "Test ... terminée" ! :?

Yaurait moyen d'avoir qq sources ...
Car j'aimerai faire un genre de Paint (mais avec des fonctions plus évoluées), mais pas un PhotoShop (je suis pas du niveau ... et j'ai pâs le tps).
Mais comme je ne sais pas par où commencer, ni gérer les images...

Je savais faire ça sous DarkBasic (avec les memblocks), mais je ne sais pas comment ça marchesous PB. Mais ça m'intéresse bcp ! :lol:

Beau travail en tt cas :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Impossible de télécharger le fichier!

Si je clique dessus, j'ouvre une page avec du texte.

Click droit, j'enregistre une page html.
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

C'est AOL qui déconne et t'affiche l'hexa du fichier. Donc, tu télécharge avec le click droit, et quand on tu demande le nom de fichier, tu mets CIL.rar au lieu de CIL.htm (ou sinon, tu renommes une fois le téléchargement terminé).
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
CameleonTH
Messages : 333
Inscription : sam. 25/juin/2005 11:18
Localisation : Laon (02)
Contact :

Message par CameleonTH »

Lionel_om si tu veut faire un Paint ta ka utiliser les fonction de la library c'est asser simple
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Oui, je suis daccord avec toi, mais je veux rajouter mes propres fonctions.
Donc j'aimerai bien savoir comment on fait. Sinon je reprendrai les sources de qq personnesqui ont déjà fais des fonction pour les modifications d'images.

Ce que je cherche, c'est les fonctions pour charger le bitmap dans un "tableau" pour pouvoir "modifier" les bits et ainsi recréer une nouvelle image. En tout cas ça marchait comme ça sous DB.
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Intéressant, l'addition des deux images; tu utilise une api ou ta propre fonction?
CameleonTH
Messages : 333
Inscription : sam. 25/juin/2005 11:18
Localisation : Laon (02)
Contact :

Message par CameleonTH »

Bah en faite j'aditionne les 2 pixel et je l'ai divise en deux ( encore des math :( c DD qui vat etre content ) et sa mélange les 2 pixels donc c ma propre fonction

Lionel en faite j'ouvre les image et je crée un tableau comme sa
Dim image(x,y)

for y=0 to ImageHeight()
for x=0 to ImageWidth()
image(x,y)=getpixel_(imageid,x,y)
next
next
enfin c un truc comme sa

Et la j'essai de me faire un genre de paint
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

nico a écrit :Intéressant, l'addition des deux images; tu utilise une api ou ta propre fonction?
En fait le c'est le principe de l'opacité... Tu as deux pixels à "fusionner" avec un coefficient, lui n'utilise que le coefficient moyen... (la moyenne...)

exemple avec la composante rouge :

Code : Tout sélectionner

0.0 <= coeff <= 1.0
c1 = coeff
c2 = 1 - coeff
r = r1 * c1 + r2 * c2
tu n'as plus qu'à appliquer aux trois composantes des deux pixels pour former le troisième. Si le coeff est égal à 0, le pixel1 ne sera pas visible et inversement si coeff = 1.
Si coeff = 50% alors les pixels (donc à plus grande échelle les images) seront équitablement fusionnées...

En espérant être clair ^^

Dri
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ok, sinon il y a une fonction API alphablend qui permet de fusionner deux images avec un niveau de transparence mais ne fonctionne pas sur Win95 et NT.
CameleonTH
Messages : 333
Inscription : sam. 25/juin/2005 11:18
Localisation : Laon (02)
Contact :

Message par CameleonTH »

Ba moi en faite j'ai fait sa, j'ai pris la valeur rouge du pixel de 'limage 1 et de l'image2 et je les ai additioner et j'ai ensuite diviser et pareil pour le vert et bleu
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

CameleonTH a écrit :Ba moi en faite j'ai fait sa, j'ai pris la valeur rouge du pixel de 'limage 1 et de l'image2 et je les ai additioner et j'ai ensuite diviser et pareil pour le vert et bleu
Tu te répètes :P
je donnais juste le cas général... Pas simplement la moyenne ^^

Dri ;)
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Merci, c'est la seule chose que je voulais.
Je ne connaissais pas cette commande... :?
Vas vraiment falloir que je consultel'APi, car je passe à coté de pleins de bonnes choses... #aieaieaie
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ben si tu as l'intention d'utiliser cette fonction, je t'explique un truc qui ma fait perdre une heure:

Cette API utilise une structure BLENDFUNCTION, mais tu ne peux pas utiliser directement cette structure (par exemple:bd.BLENDFUNCTION); il faut la copier dans une variable de type Long.

Je te dis pas, il a fallu que je cherche sur le net! :mad:

Code : Tout sélectionner

Structure BLENDFUNCTION 
  BlendOp.b
  BlendFlags.b
  SourceConstantAlpha.b
  AlphaFormat.b
EndStructure 

bd.BLENDFUNCTION

bd\BlendOp=0
bd\BlendFlags=0
bd\SourceConstantAlpha=140
bd\AlphaFormat=0

CopyMemory(@bd, @test,4)

OpenLibrary(0, "msimg32.dll") 
CallFunction(0, "AlphaBlend",hDC,0,0,100,100,hmemdc,0,0,100,100,test)
CameleonTH
Messages : 333
Inscription : sam. 25/juin/2005 11:18
Localisation : Laon (02)
Contact :

Message par CameleonTH »

Donc la méthode par moyenne et la plus simple
Répondre