Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Utilitaires >> Graph 35+USB/75(+E)/85/95 SD >> Graphisme >> Libscreenshot
Libscreenshot
Version : 0.0.1 Taille : 0 octets Ajouté le : 2010-02-12 15:33 Modifié le : 2010-02-13 18:51
Auteur et posteur :
TratakHors ligneMembrePoints: 131 Défis: 0 Message
Aucune image disponible
Nombre de visites sur cette page : 5605
Score au progrank : 20
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
584 téléchargements | Soumettre un test


Description :

Cela n'est pas un addin complet, mais une librairie pour les codeurs C, à inclure dans vos addin utilisant les niveaux de gris de Revolution-FX.

La fonction ls_screenshot() vous permettra de convertir deux buffers (clair et foncé) en une image BMP 4 bits (seulement 4 couleurs seront utilisées).

C'est encore très basique et de nombreuses améliorations peuvent être apportées (en vrac meilleur gestion des fichiers BMP, plus de niveau de gris, etc.), mais cela fonctionne. Je l'ai développée pour mon projet Sorcery-G, avec en tête la possibilité de la réutiliser pour tout le monde.

Utilisation :

***

#include "libScreenshot.h"

BMP_params bmpParams;

bmpParams.lum0 = 0xFF;
bmpParams.lum1 = 0xE6;
bmpParams.lum2 = 0x33;
bmpParams.lum3 = 0x00;

ls_screenshot(bufClair, bufFonce, &bmpParams);

***

lum0, lum1, lum2 et lum3 sont les valeurs de gris à utiliser pour la conversion (de 0 à 255). Les valeurs indiquées ne sont que des exemples. Testez.

Bon codage !

PS : Merci pour le déplacement


Commentaires :

Pages: 1, 2 | Suivante

TotoyoHors ligneMembre d'honneurPoints: 16102 Défis: 102 Message
Posté le 12-02-2010 à 17:03 | #
Tu aurais du mettre le programme dans Graph 85
TratakHors ligneMembrePoints: 131 Défis: 0 Message
Posté le 12-02-2010 à 18:53 | #
Je sais j'ai vu, je croyais l'avoir fait, j'ai vraiment du mal avec ce site

Y a pas moyen de modifier ?
TotoyoHors ligneMembre d'honneurPoints: 16102 Défis: 102 Message
Posté le 12-02-2010 à 19:46 | #
J'ai répondu à ton message privé, mais je vais t'apporter quelques informations supplémentaires ici.

Une fois le programme en enregistré, il ne sera pas possible de changer de nom, ni de modifier sa catégorie. Donc, il faut bien faire attention lors de la création d'un nouveau programme
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message
Posté le 12-02-2010 à 19:47 | #
C'est pas mal, ça peut être très utile en effet.

Pour changer le nom du prog et sa catégorie, il faut demander à un admin, mais c'est vrai qu'ils se font rares depuis quelques temps

pour ton problème de type multi-byte, je pense que c'est due au système big-endian
Par exemple dans un BMP, les dimensions de l'images sont écrites sur 4 octets, donc ça joue. Il y a un header dans le SDK avec quelques macro pour faire les conversions big-endian, little-endian.

Et sinon, il faudrait penser à vérifier que l'ouverture du fichier a réussie avant d'essayer d'y écrire. Parce que là t'écris sur la carte SD, et toutes les caltos n'ont pas de carte SD.
TratakHors ligneMembrePoints: 131 Défis: 0 Message
Posté le 12-02-2010 à 20:53 | #
@Totoyo : Voui j'ai bien vu... Je suis distrait parfois J'ai pourtant cru avoir fait attention ^^'

@Pierrotll : J'ai pas pensé que ca pouvais venir de l'endianness, c'est à explorer oui.

ls_screenshot() renvoie 0 si le fichier n'a pu être créé (quelqu'en soit la raison) ou si il y a eu un problème pendant la conversion/ecriture des buffer (en fait non ). c'est à la fonction appelante pour le moment de prévenir l'utilisateur qu'il y a eu un problème. Si un fichier du même nom existe déjà, il n'est pas remplacé (la création échoue).

En cas de succès la fonction retourne 1.

Le fichier est stocké dans fls0, c'est pas la mémoire de stockage ?
DafpHors ligneMembrePoints: 5141 Défis: 191 Message
Posté le 13-02-2010 à 10:58 | #
moi j'ai pas trop compris a quoi ça servait mais ça m'a l'air interessant
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message
Posté le 13-02-2010 à 14:00 | #
Ah si mince, t'as raison, fls0 c'est bien la mémoire de stockage. J'ai confondu.

Dafp: Quand on fait un jeu en niveaux de gris, l'émulateur du SDK ne peut pas afficher les niveaux de gris comme sur calculatrice (normal). Donc ce n'est pas très pratique de faire des screenshot de son jeu. Cette petite librairie sert à faire une capture des 2 buffers d'affichage, et génère ensuite un fichier bitmap avec l'image de l'écran en niveaux de gris.
TratakHors ligneMembrePoints: 131 Défis: 0 Message
Posté le 13-02-2010 à 14:11 | #
Merci Pierrotll, j'etais en train de répondre

En fait si je peux me permettre de préciser ta réponse, il n'y a pas conversion puis écriture, la conversion des buffers se fait à la volée pendant l'écriture. Ca évite de stocker un BMP dans la mémoire.

J'ai repensé à ce que tu m'as dit, effectivement je teste si la création du fichier à réussis, mais pas l'ouverture ensuite. Il faudrait au moins tester s'il reste assez de place pour l'image.
DafpHors ligneMembrePoints: 5141 Défis: 191 Message
Posté le 13-02-2010 à 18:06 | #
ah okay !
Cool
KristabaHors ligneMembrePoints: 614 Défis: 22 Message
Posté le 14-02-2010 à 23:46 | #
Très bonne idée, j'y avais jamais pensé
Quelques suggestions au passage :
Déjà, le problème des header vient de ce qu'on appel l'alignement de données.
J'aurais du mal à expliquer mieux que Wikipedia, mais pour faire simple les structures doivent "aligner" les données en mémoire en fonction de leur type (chaque type de base doit être écrit sur une adresse multiple de sa taille, 4 pour le int, 2 pour les short, etc...), ce qui a pour conséquence de parfois laisser des byte vides entre certaines variables d'une structure. D'ailleurs, c'est expliqué dans le PDF du compilo (fournit dans le SDK, regardez bien, sous le nom de "SHC Manual" ) à partir de la page 214. (d'ailleurs si je peux me permettre je conseil aux programmeurs intéressés par le fonctionnement du compilo de jeter un coup d'oeuil à cette doc, très interessant ).

Ensuite, je me disais que ce serait pas compliqué et toujours ça de plus de permettre d'utiliser un path manuel pour le fichier où enregistrer (genre un FONTCHAR*, qui, si il vaut 0, signifiera d'enregistrer sous un nom automatique). Genre pour les possesseurs de modèle SD, ce serait pratique pour avoir directe les .BMP sur la carte x_x

Voilà voilà, toujours du très bon travail quand même

Pages: 1, 2 | Suivante

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 131 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd