Dll Gif animés pour Pixia

Où on parle des différentes versions de Pixia, de script Gonta...

Modérateur: gg

Dll Gif animés pour Pixia

Messagede Eric le Mer Nov 11, 2009 19:00

Une tiote image gif réalisée uniquement avec Pixia

Image

La dll est ici :http://grifouilli.free.fr/index.php/docman/cat_view/38-dll-pixia.html

Elle est completement inachevée :oops:

Pour l' instant , la vitesse est de 4 images seconde, elle n' est pas réglable ( boite de dialogue suppléméntaire )
la transparence n' est pas gérée.
On peut juste creer un gif et ajouter des images à l' animation ( y compris à une animation existante )
La taille des différentes images n' est pas gérée, donc il vaut mieux une taille unique pour toute les images,
l' import d' un image vers pixia n' est pas implanté
Donc à construire
J' utilise la librairie FreeImage, qui est superbe ( conversion des fichiers raw à tester )
il ce peut qu' il manque une dll , mais c' est pas sur ( j' ai tellement de bazard sur mon pc )

Mode d' emploi:
Pour la premiere image: utiliser le filtre, puis nouveau gif , la boite de dialogue d' enregistrement des fichiers s' affiche et on quitte la dll
Pour les images suivantes, utiliser le filtre, ouvrir le fichier précédent, une serie de vignette apparait ( la scroll bar n' est pas fonctionnelle :oops: )
l' image courante n' est pas affichée , mais ça marche
Puis simplement ok , et l' animation sera mise à jour.l' image sera bien ajoutée.

Ma priorité actuelle est la gestion de la transparence.
Puis suppression, déplacement d' image, .....

@+ Eric
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Re: Dll Gif animés pour Pixia

Messagede gg le Jeu Nov 12, 2009 02:18

J'ai un peu souffert :)

tu as oublié de préciser pour l'installation qu'il fallait installer la FreeImage.dll dans le dossier system32...:) pour xp en tout cas

et entre les différentes versions qu'on trouve sur le net... finalement, c'est très con, mais c'est celle du site d'origine qu'il faut prendre (je suis un abruti, j'ai perdu du temps à chercher ailleurs et à trouver des merdes)
adresse du site pour ceux que ça intéresse http://freeimage.sourceforge.net/download.html
il faut prendre la version win32.. et choisir la dll FreeImage.dll qui est dans le dossier 'dist'.

après, bon j'avoue que je ne comprends pas super bien comment ça marche... mais j'ai bien obtenu quelque chose... donc j'imagine que ça fonctionne... même si j'ai trop sommeil pour comprendre :),

hé hé, en tout cas, c'est un drôle de plus... même si ce n'est pas fini.
je modère, alors, svp, pas de politique, pas de guerre windows/mac/linux, pas d'insultes, pas de fichiers illégaux, pas de sms
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Re: Dll Gif animés pour Pixia

Messagede Eric le Jeu Nov 12, 2009 19:04

tu as oublié de préciser pour l'installation qu'il fallait installer la FreeImage.dll dans le dossier system32...:) pour xp en tout cas

Comme j' avais " linker" avec la librairie Freeimage avant de compiler la dll, je pensais que je Freeimage.dll n' était plus indispensable.
Bon, je reverrais ça.
Le caque en cours s' affiche correctement maintenant
J' ai modifié le bazard, pour tester la transparence , ça fonctionne.
Maintenant, c' est la couleur du coin bas , gauche qui est la couleur transparente ( oui, je sais, bas gauche c' est pas le meilleur endroit )
Les images se supperposent sans effacer les précédentes, selon la transparence .

A eviter en ce cas le flou et l' antaliasing , car le gif est en 256 couleurs indexées.

L' utilisation est en fait tres simple:
Tu fais ta premiere image, tu appliques le filtre et tu choisis nouveau gif.
l' enregistrement est automatique.

puis pour les images suivantes, dans le filtre tu cliques sur ouvrir un gif, puis ok et le fichier sera mis à jour.
C' est la premiere image qui donne la taille du gif.
Les autres peuvent etres plus petites, mais pas plus grandes.

En fait cette dll est un brouillon pour voir ce qu' on peut faire.
Faut que je rajoute des boites de dialogues pour des options.
Transparence ou non,
vitesse de l' animation,
mode de supperposition de l' image,( 3 possibles )
offset en x et y de l' image, soit de maniere globale ( comme actuellement ) soit pour chaque image.
Ce serait interressant d' avoir un fond non transparent, et d' autres images transparentes.
Je regarde ça de suite

J' ai du en oublier!
Ce serait interressant d' avoir un fond non transparent, et d' autres images transparentes.
Je regarde ça de suite
@+ Eric
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Re: Dll Gif animés pour Pixia

Messagede gg le Jeu Nov 12, 2009 22:59

ça prend forme :)

heu... bon, là j'en demande beaucoup... possibilité de faire les animations à partir de différents calques sur une même image ? Ou ce n'est franchement pas envisageable pour l'instant ? C'est juste pour savoir :oops:
je modère, alors, svp, pas de politique, pas de guerre windows/mac/linux, pas d'insultes, pas de fichiers illégaux, pas de sms
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Re: Dll Gif animés pour Pixia

Messagede Eric le Ven Nov 13, 2009 09:38

Hélas non gg, je n' ai pas les infos indispensable pour le faire, a savoir un fichier d' entete (.h)
définissant les fonctions de communication avec Pixia
Pour exemple un extrait du fichier pixiadll.h qu' il faut absolument inclure à la compilation d' un filtre
Code: Tout sélectionner
// pixel-reading functions
//-----------------------------------------------------------
typedef struct tagGETLINEFUNC{
   // read a pixel of main image.
   BOOL (*GetLine)( int y, int x0, int x1, LPBYTE buff, int n );
   //read (x0,y)-(x0+x1,y) and set buffer(BGRBGR...).
   //Set -1 on "int n" surely.

   // read an alpha channel.
   BOOL (*aGetLine)( int y, int x0, int x1, LPBYTE buff, int n, int n2 );
   //read (x0,y)-(x0+x1,y) and set buffer(AAAA....).
   //Set -1 on "int n" surely.
   //n2=0:mask channel.
   //n2=1:transparency(hidden) channel.

   // read the palette(It hasn't been used now yet.
   
   BOOL (*GetPalette)( BYTE *palette, int n );
   char reserved[64];
}GETLINEFUNC;


l' extrait ci dessus defini une structure contenant deux pointeurs vers des fonctions avec les parametres utilisés par ces fonctions.
Celles ci ont été crées par le concepteur de Pixia et sans le code source , on peut rien faire.
Elles permettent uniquement l' acces ligne par ligne au contenu de la selection, et rien d' autre.
Donc impossible d' avoir acces au contenu des différents calques.

Exemple d' utilisation: je récupere ligne apres ligne les données rvb alpha de l' image, les ordonne et les stocke dans une mémoire réservée.

Code: Tout sélectionner
for ( j = 0; j < li->cy; j ++) // lecture une ligne .........
    {
        pos=j*taille_ligne;
        //li->cx taille de la ligne
        gf->GetLine( j, 0, li->cx, ligneTmp,  -1 );// lecture ligne image et stockage temporaire
        gf->aGetLine(j,0,li->cx,alphaTmp,-1,1);// lecture ligne alpha et stockage temporaire
        for (i=0;i<li->cx;i++)// lecture des pixels et agencement BVR alpha...
        {
            calque_image.pmemoire[pos+(i*4)]=ligneTmp[i*3];// bleu
            calque_image.pmemoire[pos+(i*4)+1]=ligneTmp[(i*3)+1];//vert
            calque_image.pmemoire[pos+(i*4)+2]=ligneTmp[(i*3)+2];//rouge
            calque_image.pmemoire[pos+(i*4)+3]=alphaTmp[(i)];//alpha

        }
}


J' ai fouillé le web, mais rien de rien, sauf sur le forum anglais ou quelqu' un à demandé le source permettant d' ecrire des dll de sauvegarde
Il n' a eu aucune réponse.

Il faudrait poser la question au programmeur de Pixia directement

Pour l' instant, je dois me contenter d' ajouter les images au gif selection apres selection.

Il y a une autre possibilité au travers les fichiers .pxa, qui contiennent la totalité des calques, transparences....
Reste à trouver l' organisation de ces fichiers, c' est pas forcément plus simple.

@+ Eric
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)


Retourner vers Développement de Pixia

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

cron