Page 1 sur 2
CIL --> CameleonTH Image Library
Publié : dim. 31/juil./2005 0:30
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

)
http://pagesperso.aol.fr/cameleonth/CIL.rar
Laisser vos impressions ou si sa bug.
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\"
Publié : dim. 31/juil./2005 10:01
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 !
Beau travail en tt cas

Publié : dim. 31/juil./2005 10:44
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.
Publié : dim. 31/juil./2005 12:56
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é).
Publié : dim. 31/juil./2005 13:15
par CameleonTH
Lionel_om si tu veut faire un Paint ta ka utiliser les fonction de la library c'est asser simple
Publié : dim. 31/juil./2005 18:03
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.
Publié : dim. 31/juil./2005 18:09
par nico
Intéressant, l'addition des deux images; tu utilise une api ou ta propre fonction?
Publié : dim. 31/juil./2005 18:26
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
Publié : dim. 31/juil./2005 18:45
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
Publié : dim. 31/juil./2005 18:53
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.
Publié : dim. 31/juil./2005 19:13
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
Publié : dim. 31/juil./2005 19:56
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

je donnais juste le cas général... Pas simplement la moyenne ^^
Dri

Publié : dim. 31/juil./2005 19:58
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...

Publié : dim. 31/juil./2005 20:29
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!
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)
Publié : dim. 31/juil./2005 20:34
par CameleonTH
Donc la méthode par moyenne et la plus simple