Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 25 294 987

  • Nb. de membres 187
  • Nb. d'articles 1 270
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» Comment capturer un écran en C ?

Comment capturer un écran en C ?#1821

5Contributeur(s)
zzd10hthellierElwoodAmiDARKK-L
3 Modérateur(s)
K-LElwoodcorto
AmiDARK AmiDARKicon_post
Merci pour ton partage zzd10h :)
Cela va m'être utile pour deux ou trois choses ;)

Je regarderai pour l'histoire du 16 bits.

@+
zzd10h zzd10hicon_post

Je pense que ça marche maintenant (j'ai switché plusieurs fois de 32 en 16 + reboot)

http://zzd10h.amiga-ng.org/FastView/ScreenCapture.lha

modifs à 2 endroits ("if (bpp == 2)").

J'ai honte, mais je ne sais pas pourquoi ça marche... :-?
Elwood Elwoodicon_post
Ok, je vais ajouter un readme en disant que c'est fait par toi et que c'est freeware, ok ?
Et j'envoi le tout à Steven pour le SDK.
--
Philippe Ferrucci
Avec une Sam460 et AmigaOS 4.1, je suis eco-responsable. Cool !
thellier thelliericon_post
Salut

c'est ton BytesPerRow qui est faux = cette valeur s'applique a TON buffer RGB et non pas la bitmap source
c'est justement parce que l'os ne sait pas comment gérer un simple buffer qu'il faut au moins lui dire la taille d'une ligne du buffer
(Toi t'as jamais utilise le blitter ;-) )
Pour la bitmap source par contre l'OS connait sa taille et format = inutile de s'en préoccuper (sauf si 8 bits + palette ==> readpixelarray8)

Enleve tout ça
profondeur = p96GetBitMapAttr(monrastport->BitMap, P96BMA_BITSPERPIXEL);

formatRGB = p96GetBitMapAttr(monrastport->BitMap, P96BMA_RGBFORMAT);

switch (formatRGB)
{
case RGBFB_R5G6B5:
case RGBFB_R5G5B5:
bpp = 2;
break;

case RGBFB_R8G8B8:
case RGBFB_B8G8R8:
bpp = 3;
break;

case RGBFB_A8R8G8B8:
case RGBFB_A8B8G8R8:
case RGBFB_R8G8B8A8:
case RGBFB_B8G8R8A8:
bpp = 4;
break;
}



et mets juste
profondeur =3;
zzd10h zzd10hicon_post
Houla, Elwood, attends, ça serait bien qu'un pro regarde le truc et corrige le tout ;-)

Merci Alain, mais je ne me sers pas de "profondeur" mais de "bpp".

J'ai laissé "profondeur" parce que j'avais fait des tests avec.

Si toi ou AmiDark avait 5 minutes pour peaufiner/compiler/tester le truc, merci.

En effet, le Blitter, je ne sais même pas ce que c'est ...
thellier thelliericon_post
OK j'ai récupéré ta source , je l'ai checké : je recompile dès que je peux
Tu peut m'envoyer sur mon mail (celui d'orange) la libjpeg que t'utilise

Alain
AmiDARK AmiDARKicon_post
Alain s'étant proposé, je lui laisse volontiers cette tâche :p
zzd10h zzd10hicon_post
Elwood Elwoodicon_post
Les gars, j'aime bien vous voir bosser ensemble. ça fait plaisir ! :=!
--
Philippe Ferrucci
Avec une Sam460 et AmigaOS 4.1, je suis eco-responsable. Cool !
zzd10h zzd10hicon_post
Elwood :
voila patron ;-) c'est fait, grâce à Alain, le source a été simplifié.

J'imagine que le gars qui fait le SDK fait ça les doigts dans le nez, donc merci de me retourner les erreurs et améliorations (si ça l'intérésse...)

J'ai de plus ajouté des arguments pour spécifier le nom de fichier et la qualité (100 par défaut), si qq'un veut s'en servir comme outil autonome (non, attendez que j'implémente cette fonction dans FastView ;-) )

5/0.RAM Disk:ScreenCapture> ScreenCapture RAM:Test.jpg 90
Grab started
Grabing 1920x1080 (bpp 3) screen in RAM:Test.jpg (jpeg quality = 90)
Grab ended


http://zzd10h.amiga-ng.org/FastView/ScreenCapture.lha

Encore merci Alain d'avoir pris un peu de temps pour les explications et les modifs.
Message édité par : zzd10h / 18-03-2014 18:48
Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme