3D-Diablotine.com
Nous sommes actuellement le Dim 22 Avr 2018, 07:50




Publier un nouveau sujet Répondre au sujet  [ 21 messages ]  Aller à la page 1, 2  Suivant
 WIP : création d'un viewer de brosses ABR 
Auteur Message
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Lun 26 Mai 2008, 16:38
Messages: 12768
Localisation: Isère - Jura
Message WIP : création d'un viewer de brosses ABR
Question : Utilisez-vous un viewer de brosses ?
ou brushes, en anglais.

si oui, et si vous en avez récupérées sur divers sites internet (comme Deviant.art, où on en trouve des milliers), vous devez avoir le même problème que moi : à moins que le créateur n'ait inclus une image d'aperçu dans son pack, pas moyen de voir à quoi elles ressemblent... à moins de les charger dans Photoshop !
ça bouffe de la Ram pour rien, et je passe le nombre de clics à effectuer... c'est vraiment pas pratique.

j'ai cherché un peu sur le net, et ai trouvé 2 applications (gratuites) permettant un aperçu :
- le 1er ne m'a pas convaincu (surtout sur la création des vignettes par centaines, avec plein de doublons, sans suppression automatique... bref, pas top),
- le second nécessite le framework MS .net 2.0 (ou ultérieur), soit 50 ou 60 Mo minimum à télécharger, et ça fait une install de plus qui alourdit le système (voire de trop si ça ne sert qu'à ça).

bref, tout pour arriver au fait que j'ai envisagé de coder mon propre viewer de fichiers .ABR ! :-P
j'ai un peu tâté aujourd'hui, en commençant par essayer de comprendre à coup d'éditeur hexadécimal comment ces tordus de codeurs d'Adobe avaient élaboré la structure des fichiers, et c'était pas d'la tarte ! :evil:
apparemment, ils n'avaient pas trop envie que le premier clampin venu puisse comprendre comment ça marche... (je détaillerai un peu si quelqu'un est intéressé par le sujet)

j'ai tout de même réussi en fin de journée à repérer les données qui m'intéressaient : les couleurs des pixels de la brosse, et les informations de position ! du coup, j'ai entamé aussi un début d'interface (toujours avec Auto-It, je crois que je vais définitivement laisser tomber VB6), qui va me servir à "parser" les fichiers pour en extraire les données en question.

L'étape suivante sera la transformation des données en fichiers images.
Et la suivante sera la prise en charge des différentes version, puisque j'ai déjà repéré au moins 3 structures différentes, selon la version ayant servi à créer le fichier.

MAIS... avant d'aller plus avant, question, puisque je m'adresse ici à une communauté fortement concernée : un viewer de fichiers .ABR vous intéresserait-il ? en auriez-vous l'usage ? ou avez-vous déjà trouvé ce qu'il vous faut ? en général, je code des trucs pour mon usage propre, mais là, vu que ça va être bien chiant (en tout cas, ça a bien commencé...), je préfèrerais savoir que d'autres en auront l'usage.

voilà ! :-o

_________________
Image     Image
Image  Image


Dernière édition par la_saucisse le Mar 26 Mai 2009, 20:28, édité 1 fois au total.



Lun 25 Mai 2009, 17:45
Profil Site Internet
Modérateur
Modérateur
Avatar de l’utilisateur

Inscrit le: Dim 13 Mai 2007, 03:40
Messages: 4832
Localisation: Entre mes crayons et ma palette graphique...
Message Re: Question : Utilisez-vous un viewer de brosses ?
Perso, la réponse est oui ! :-D

Sinon, j'aimerais savoir si on peut transformer en fichier abr des fichiers d'autres logs de dessin comme Painter ou TwistedBrush
( ce serait les fichiers de ce dernier qui m'intéresseraient de transformé )...

@+ ;-)

_________________
Pin-oops ! Le site * Pin-oops ! Le blog * ImageImage

Image ... y'a aussi Pin-oops ! Model Mayhem, Pin-oops ! Le FB, Pin-oops ! Le Twitter, Pin-oops ! Le... :silly:
Image


Lun 25 Mai 2009, 19:09
Profil Site Internet
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Lun 26 Mai 2008, 16:38
Messages: 12768
Localisation: Isère - Jura
Message Re: Question : Utilisez-vous un viewer de brosses ?
ouch, la question qui tue. :roll:

à priori, je dirais "oui". Après tout, les brosses Photoshop ne sont que des images en niveaux de gris utilisées comme pinceaux (ou des pixels noirs avec un canal alpha, mais ça revient un peu au même). Si le principe est le même sur les 2 logiciels que tu cites, ça devrait pouvoir être adapté de l'un à l'autre.

en théorie. :-?

en pratique ? bin... je vous posterai une capture d'écran de l'usine à gaz que j'ai bricolée sur Excel pour "décoder" le fichier .abr, vous comprendrez mieux le problème.
j'ai utilisé un tableur car ça permet de mettre en couleur les octets similaires, d'appliquer certaines opérations (notamment des conversions HEX <> DEC ) et bien sûr de dupliquer tout ça d'une ligne/colonne à l'autre, pour traiter un grand nombre de cellules. Ainsi, visuellement, ça permet de déceler les similitudes et donc, généralement, des données à la fonction identique.
et pour tout dire, les .abr, c'est le merd... le bazar ! car si j'ai bien réussi à définir mes "blocs" (disons, chaque partie du fichier correspondant à une brosse), je n'ai pas encore compris la totalité du fichier !

l'analogie est un peu grosse, mais je suis comme devant une chaine d'ADN, dont je comprend certains segments et pas d'autres. Si j'ai besoin d'extraire ces segments, pas de problème, c'est ce que je suis en train de faire : une fois identifiés, faire un script qui est capable de les reconnaître et de les extraire n'est pas compliqué.

par contre, dans l'autre sens, c'est plus délicat : pour transformer des brosses Painter en .abr, il faudrait d'abord extraire les données "pixels" du fichier Painter (ça, ça doit être faisable comme je viens de le faire pour les .abr) puis les transformer selon le codage Photoshop.
Le hic c'est qu'il n'y a pas que ces données "pixels" : dans mes blocs, il y a plein d'autres données, dont je ne sais pas encore à quoi elles servent !! et je ne pense pas que Photoshop acceptera des données aléatoires : il vérifie sûrement la "syntaxe" et la structure du fichier quand il charge un fichier.
de même que mon brin d'ADN est un assemblage cohérent de chaînes : ce n'est pas parce qu'on isolé un morceau qu'on sait à quoi sert le voisin.


en conclusion, et si vous avez bien tout compris ce que je pense être le problème (quoique je peux me gourrer, je viens juste de m'y mettre), il faudrait comprendre l'intégralité de la structure .abr pour la reproduire avec les données voulues.

si quelqu'un veut s'y pencher aussi, ja'ccepterai volontiers toute aide ! ;-)

_________________
Image     Image
Image  Image


Lun 25 Mai 2009, 21:37
Profil Site Internet
Modérateur
Modérateur
Avatar de l’utilisateur

Inscrit le: Dim 13 Mai 2007, 03:40
Messages: 4832
Localisation: Entre mes crayons et ma palette graphique...
Message Re: Question : Utilisez-vous un viewer de brosses ?
:shock: :silly: :drinking: :pong: :dodo:

_________________
Pin-oops ! Le site * Pin-oops ! Le blog * ImageImage

Image ... y'a aussi Pin-oops ! Model Mayhem, Pin-oops ! Le FB, Pin-oops ! Le Twitter, Pin-oops ! Le... :silly:
Image


Lun 25 Mai 2009, 21:55
Profil Site Internet
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Lun 26 Mai 2008, 16:38
Messages: 12768
Localisation: Isère - Jura
Message Re: Question : Utilisez-vous un viewer de brosses ?
ok, bon bin je vais aller dormir, moi........ :cobra: :cobra: :cobra:

_________________
Image     Image
Image  Image


Lun 25 Mai 2009, 22:14
Profil Site Internet
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Ven 30 Aoû 2002, 09:53
Messages: 13504
Localisation: Montréal, Québec
Message Re: Question : Utilisez-vous un viewer de brosses ?
Je suis intéressée par une appli simple d'installation et d'utilisation !

_________________
3D-Diablotine : Forum 2D/3D pour tous les amateurs de graphisme ^-^
On a tous un brin de talent, il suffit de le mettre en avant et de l’aider à devenir grand

Image
Ma boutique Content Paradise--Boutique cadeaux 3D-D


Lun 25 Mai 2009, 23:33
Profil Site Internet
Modérateur
Modérateur
Avatar de l’utilisateur

Inscrit le: Ven 7 Mar 2008, 11:23
Messages: 8129
Localisation: Forêt d'Orient
Message Re: Question : Utilisez-vous un viewer de brosses ?
+1 :-D

_________________
Image


Mar 26 Mai 2009, 08:12
Profil
Modérateur
Modérateur
Avatar de l’utilisateur

Inscrit le: Sam 16 Fév 2008, 17:26
Messages: 5672
Localisation: Near Toulouse
Message Re: Question : Utilisez-vous un viewer de brosses ?
L'idée est très intéressante, et c'est vrai qu'un viewer de brosses serait bien pratique. :-D

_________________
"Je voudrais être une larme, pour naître dans tes yeux, vivre sur ta joue et, mourir sur tes lèvres"
Image
Pachou-3D - Deviant Art - daporfolio


Mar 26 Mai 2009, 11:15
Profil Site Internet
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Lun 26 Mai 2008, 16:38
Messages: 12768
Localisation: Isère - Jura
Message Re: Question : Utilisez-vous un viewer de brosses ?
j'ai un peu avancé aujourd'hui, je posterai quelques snaps ce soir si j'ai le temps...
(un wip de programmation d'appli graphique, en quelque sorte...)

_________________
Image     Image
Image  Image


Mar 26 Mai 2009, 15:52
Profil Site Internet
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Lun 26 Mai 2008, 16:38
Messages: 12768
Localisation: Isère - Jura
Message WIP : création d'un viewer de brosses ABR
préambule : ça va être (très) long, mais un WIP sur la conception d'un logiciel dédié ne se fait pas en 10 lignes... et quitte à expliquer, autant faire en sorte que tout le monde puisse bien comprendre.
donc, ça sera détaillé. Enfin, assez, je l'espère.

:arrow: Diablotine, j'espère ne pas être trop "hors-sujet du forum" avec ce post :-? ;-)



- - - - - - - - - - - - - - - - - - - - - -

suite à mes explications (fumeuses), je vous propose de suivre un peu la démarche que j'ai suivie jusqu'à présent. Vous comprendrez ainsi le cheminement qui conduira, je l'espère, jusqu'à la mise en ligne du setup d'install de ce nouveau freeware, pour une fois pas trop inutile (c.f. mes autres applis... :roll: )

attention, chauffage de cafetière en perspective :multi:


ETAPE 1 : créer un fichier ABR

- pour commencer, j'ai créé une dizaine de brosses toutes simples, de formes et formats plus ou moins variées (pas trop, il faut trouver des similitudes ! ) :

Image


c'est petit, hein ? agrandissons, et ajoutons les dimensions des brosses :

Image

les commentaires sont en rouge ; numérotées de 1 à 10, elles sont constitués de pixels 100% noir. Puis je les ai sauvegardées dans un fichier ABR.

- examinons un peu ce fichier. Mais comment ? ouvert avec le Bloc-Note, on obtient un magma de texte à peu près illisible. Utilisons plutôt un éditeur héxadécimal :

Image

c'est à peine mieux ?... mais si : là au moins, la partie hexadécimale est lisible.



ETAPE 2 : un peu de théorie informatique

Pour faire rapide, et pour ceux qui ne le savent pas, l'hexadécimal est une façon de compter, mais en base 16, et non en base 10 comme le système décimal que nous utilisons tous les jours. Aux 10 chiffres classiques, on va ajouter 6 lettres de A à F.
Code:
en décimal, on compte :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
en héxadécimal, ça donnera
0 1 2 3 4 5 6 7 8 9 A  B  C  D  E  F  10 11 12 13 ...


l'intérêt ? c'est qu'en base 10, sur 2 caractères, on peut avoir 10² = 100 valeurs différentes, alors qu'en hexa, 16² = 256 valeurs !

en informatique, on aime le binaire, les 0 et les 1, ce qu'on appelle les bits. 8 bits = un octet (ou byte en anglais). Donc 256 valeurs, ça tombe bien, c'est justement ce que l'on peut stocker sur un octet, soit 2 puissance 8 !
donc, en hexa, les valeurs de 00 à FF correspondent à 00 > 255 en décimal (et non 256, attention, on commence à 0 et non à 1 )

note : pour ne pas confondre décimal et hexa, on note généralement l'hexa avec "0x" devant :
0x10 <--- hexadécimal (ce qui vaut 16 en décimal)
10 <--- décimal

pourquoi c'est en partie illisible en décimal ? parce que les caractères "normaux", y'en a pas 256 : 26 lettres dans l'alphabet, x2 pour les majuscules/minuscules, + 10 chiffres, + la ponctuation...
reportez-vous à la table ASCII, un des premiers codages de caractères, pour comprendre ce qui est codé sur les 128 premières valeurs. Vous comprendrez pourquoi notre fichier, utilisant des valeurs de 00 à FF, octet par octet, est illisible en version "texte".



ETAPE 3 : Essayons de comprendre quelque chose

regardons de plus près... mouais... bof........ :-? .......... aaah ? quoique... :-o

à y regarder de plus près, y'a beaucoup de séries de 00 et FF, et nos brosses sont constituées de points noir sur fond blanc. Est-ce qu'il n'y aurait pas là une piste ?

en fait, j'ai créé les brosses une par une, et ait examiné le fichier ABR au fur et à mesure que j'ajoutais les brosses. Ayant commencé par la brosse n°1 (un pixel), puis 2 et 3 (respectivement 3 et 5 pixels), j'ai tout de suite repéré mes pixels.

- pour le fichier ABR de la brosse n°1, j'avais un FF ... moué, rien de bien concluant
- pour la brosse n°2, j'avais remarqué une série FF FF FF
- pour la n°3, j'avais FF FF 00 FF FF... ça vous rappelle quelque chose ? hé oui, c'est ma série de pixels : pixel, pixel, trou, pixel, pixel.
En vérifiant sur les autres brosses, ça marchait à chaque fois (à part 2 brosses, mais je ne sais pas encore pourquoi...).

bon, maintenant on le sait : Photoshop stocke les points noirs avec des FF et les "trous" (ou points blancs, ou transparent, avec des 00). Traduction : les brosses sont des pixels noirs, avec chacun un niveau de transparence, avec 256 valeurs possibles ! 0xFF (255), c'est opaque à 100% (ou transparence = 0), 0x00, c'est opaque à 0% (ou transparence = 100%)

J'ai vérifié ça en créant des brosses (ici non présentées) avec des points gris : j'obtenais mes séquences de pixels comme je m'y attendais, mais avec des valeurs intermédiaires, et plus le gris était clair, plus la valeur (= opacité) était basse. CQFD.


Vous avez tout suivi ? la suite au prochain épisode ! :cobra: :cobra: :cobra:

_________________
Image     Image
Image  Image


Dernière édition par la_saucisse le Mar 26 Mai 2009, 22:48, édité 1 fois au total.



Mar 26 Mai 2009, 18:55
Profil Site Internet
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Lun 26 Mai 2008, 16:38
Messages: 12768
Localisation: Isère - Jura
Message Re: WIP : création d'un viewer de brosses ABR
ETAPE 4 : rationalisons l'analyse...

Bon, on a nos pixels, c'est bon, on peut recréer l'image ?

Bin non : on sait comment ils sont codés, mais pas dans quel ordre. Examinez la brosse n°9, constituée de 2 rangée de 7 pixels. La séquence hexa correspondante est :
0xFF FF FF FF FF FF FF FF 00 FF FF FF 00 FF.
soit 14 octets ; ça commence par sept 0xFF, soit les 7 pixels pleins de la rangée du haut, puis sept autres, avec nous "trous (0x00) en 2ème et 6ème position. Mais entre le dernier FF de la première rangée et le premier FF de la 2ème, vous voyez quoi ? rien ? bin non, normal, y'a rien. :-?

donc, la question se pose : comment Photoshop sait-il qu'il doit faire un "retour de ligne" entre ces 2 octets ? comment sait-il que c'est une brosse de 7x2, et non de 2x7 ?
pour les brosses de 20 pixels, comment fait-il la distinction entre les 4x5, les 5x4, les 10x2, les 1x20..... ?

conclusion : quelque part dans le fichier doivent se trouver soit :
- le nombre total de pixels, ET une des dimensions (hauteur OU largeur)
- la hauteur ET la largeur
ces 2 valeurs permettront de retrouver l'agencement des pixels et de faire les sauts de ligne adéquats.

D'où ma répétition de brosses de mêmes dimensions, mais d'orientation différente : je constaterai forcément une différence !


C'est là que je suis passé à mon fichier Excel, histoire de tout bien avoir sous les yeux simultanément :

Image



ETAPE 5 : Un peu de couleur pour s'y retrouver


bon, avant toute chose, identifier les zones de chaque brosse dans le fichier ; comme je vous l'ai dit, l'examen du fichier après chaque ajout de brosse m'a permis de voir ce qui était ajouté ou pas.
une fois identifiés mes "blocs" (appelons-les ainsi), je les ai copiés/collés sur une ligne, puis répartis en ligne de 48 caractères (soit 24 cellules, 2 caractères héxadécimaux par cellules), puis isolés cellule par cellule. La décomposition peut commencer :

- j'ai remarqué que le bloc de chaque brosse commençait par une série de chiffres/lettres séparés par des tirets ( - ), un peu comme des n° de série ou des clefs de base de registre, et finissait par 0x6139 (soit a9 en décimal)

(et rappelez-vous que je précède 6139 par 0x afin d'indiquer qu'il s'agit d'hexa)

Exemple : V$870e8a3b-4910-11de-917f-8739fbbb1fa9
signification pour le moment, je n'en sais rien, mais on n'en est pas là.
j'ai donc coloré mes tirets (0x2D) en violet, le reste de la séquence en jaune.

- puis j'ai remarqué que le début, avant le 1er tiret, variait parfois : mauve pâle.

- après cette séquence, 2 séries de chiffres identiques (bleu moyen), mais la 1ère précédée de 0x00, la 2ème de 0x00 00 00 (bleu clair), et chaque série suivie de 0x00 08
exemple :
00 2D 00 23 00 31 00 28 00 08 00 00 00 2D 00 00 00 23 00 00 00 31 00 00 00 28 00 08

- puis un octet, et selon les brosses, 0x00 ou 0x01. Dans la capture ci-dessus, que des 0x00, mis en vert clair.

- ensuite, nos 0xFF et 0x00 : colorés en 2 teintes d'orange/saumon, par ligne

- et pour finir ? une série de 0x00, mais de nombre variable. Et reste la question : finissent-ils le bloc, ou comment-ils le suivant ? je pense avoir une petite idée.



ETAPE 6 : Alors, et notre nombre de pixels ?

dans mon tableau, en colonne AB (référence Excel, hein, pas héxadécimale, ne commencez pas à tout mélanger), j'ai noté la dimension de ma brosse : largeur x hauteur, en pixels.
en AC, j'ai noté le nombre de pixels, soit une bête multiplication et, en AD, l'équivalent en héxadécimal, que je comptais retrouver quelque part dans mes cellules.
Mais je sais, vous ne voyez que des # en AD.

C'est normal : j'ai développé ce tableau sous OOo (Open Office) Tableur sur un autre PC, et l'ai chargé ce soir à la maison (sur Excel) pour ce wip. Or Excel ne prend pas en charge les fonctions de conversion Hex < > Dec dont je me suis servi sous OOo. Les colonnes AD, AE et AF sont donc illisibles sur la capture d'écran, mais c'est pas bien grave.

Bref. J'ai cherché, cherché... et ne trouvais rien ! Puis j'ai remarqué qu'une cellule variait d'un bloc à l'autre, mais avait la même valeur sur mes 3 brosses en 20 pixels (lignes 33, 40 et 54) : la 1ère de ma séquence ! du coup, je les ai mises en rouge, et me suis penché dessus un peu plus.

0x56 = 86, et mes brosses font 20 pixels.... rhaaaa ! :evil:
bon, voyons les autres :
ligne 25 : 0x65 = 101, brosse de 35 pixels...
ligne 47 : 0x50 = 80, brosse de 14 pixels...

et là, tilt ! :multi:
86 - 20 = 66
101 - 35 = 66
80 - 14 = 66 !!!

donc allez savoir pourquoi, ces :tresfache: de programmeurs d'Adobe ont décidé de coder la valeur "nombre total de pixels" en y ajoutant 66.
c'est presque démoniaque ! :twisted:

mais le principal, c'est que j'ai la 1ère des 2 données nécessaire ! il me manque maintenant la largeur ou la hauteur...



ETAPE 7 : Cherchons l'autre donnée !

là, je ne vous cache pas que j'ai chauffé de la cafetière, et un peu plus que pour les pixels. Je savais que c'était là, sous mes yeux, mais pas moyen de retrouver mes largeurs / hauteurs de brosses.

Puis j'ai fini par trouver.... 8-)

Mes doubles séries de chiffres, ceux en bleu, m'intriguaient mais je n'arrivait pas à leur faire "dire" quoi que ce soit. J'ai converti en décimal ceux qui n'étaient pas évidents, et c'est là que j'ai percuté.

Prenez la ligne 34, on a les 4 chiffres 0x08, 0x04, 0x0D et 0x08 (en bleu foncé), ils sont répétés en ligne 35. C'est une brosse de 4x5 pixels.
En décimal, ça fait 8, 4, 13 et 8.

Je vous laisse chercher ? bon allez, un indice : 8, 4, 13 et 8.

Toujours pas ?

13 - 8 = 5
8 - 4 = 4

:shock:

j'ai vérifié avec les autres blocs, bingo ! ces tordus ont codé les 2 dimensions largeur / hauteur via 2 paires de chiffres alternés : il faut soustraire le 1er au 3ème pour la hauteur, et le 2ème au 4ème pour la largeur !!!

bon, il me reste plein de zones d'ombres, comme cette cellule verte qui semble aller de pair avec un codage différent des pixels, ce n'est plus 00 et FF... à voir plus tard, je ne sais encore.

Mais le plus important est là : j'ai réussi à identifié les parties de mes blocs indispensables à l'extraction de certaines brosses :
- série de pixels avec code couleur (ou code "opacité")
- nombre total de pixels
- hauteur et largeur

notez que je misais sur 3 de ces données, mais finalement y'a les 4 !


on va pouvoir attaquer un premier jet d'exécutable, histoire de tester l'extraction des données en question ! à suivre dans un post suivant... :-P :-P

_________________
Image     Image
Image  Image


Dernière édition par la_saucisse le Mar 26 Mai 2009, 22:51, édité 1 fois au total.



Mar 26 Mai 2009, 22:01
Profil Site Internet
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Lun 26 Mai 2008, 16:38
Messages: 12768
Localisation: Isère - Jura
Message Re: WIP : création d'un viewer de brosses ABR
ETAPE 8 : On dégaine Auto-It

Image

voilà un bout de code sous Auto-It ; les lignes 13 à 23 définissent mon interface... oui oui, 11 lignes : c'est pour ça que j'aime décidément bien ce langage ! :-P

et cette interface, elle donne quoi ?

Image

pour le moment c'est pas très beau, mais ça fonctionne. Visite guidée :

1°) "Parcourir..." et choisissez un dossier contenant des brosses .ABR (par défaut ça ira chercher le dossier par défaut de Photoshop)

2°) ici, la liste des fichiers .abr trouvés. Si on clique sur un fichier...

3°) ... ça affiche ici la liste des brosses du fichiers. Pour le moment, en début de développement, j'y indique un nombre, je vous expliquerai pourquoi après. Si on clique sur une brosse...

4°) ... ça affiche ici ses paramètres (taille, largeur, hauteur...) et sa chaine de pixels en Hexadécimal

5°) ... et ici, une représentation (pour le moment textuelle) de la brosse : les 0xFF deviennent des X, et les 0x00 deviennent des espaces.

Vous reconnaissez celle-ci ? c'est la n°7 ! :-o
youpiiii, ça fonctionne ! mon .exe est capable de décoder mon .abr !


Alors, comment ça marche ? en gros :
- je charge mon fichier .abr en mode binaire (Auto-it va lire en héxadécimal, et non en mode texte)
- je recherche les chaînes constituées de
0x2D (8 caractères) 0x2D (8 caractères) 0x2D (8 caractères) 0x2D
vous aurez reconnu mes séquences de départ ! pourquoi 8 caractères entre chaque tiret ? y'en a que 4 !.... oui, en décimal, mais en hexa ça en fait 8.
- je stocke leurs positions : ce sont les fameux nombres me servant pour le moment de référence de brosse.
- ce n'est pas pour rien que je parle de référence : à partir de ce nombre, indiquant l'octet où se trouve (par rapport au début du fichier) le 1er des 4 tirets de chaque séquence, je peux déduire la position de mes octets voulus !!! faut en retirer pour retrouver le nombre de pixels et en ajouter pour les largeurs / hauteurs !
- pour récupérer ma série de pixels (de longueur variable), c'est simple : position de départ + le décalage fixe pour trouver le 1er octet de pixel ; ensuite, on extrait un nombre X (que j'ai récupéré, c'est mon nombre de pixels) d'octets à partir de cet endroit...
- enfin, on teste chaque octet de la série de pixels : si c'est 0xFF, on affiche un X, et si c'est 0x00, on affiche un espace.
Et pour le saut de ligne ? on divise l'octet en cours par la largeur : si c'est un nombre entier, c'est qu'on est en fin de ligne, et s'il y a une virgule, c'est qu'on y est pas encore. et hop !


bon arrêtons-là, d'ailleurs j'ai fini, j'ai tout dis :roll:

objectif à atteindre pour cette application :
- convertir la représentation textuelle en véritable image (ce sera le sujet d'un autre post, quand j'y serai parvenu, mais j'ai déjà mon idée sur la question...)
- être en mesure de prendre en charge les différents modes de codage (puisque je vous dis que j'ai repérée certaines brosses qui ne sont pas codées tel que je viens de vous l'expliquer) au sein des brosses Photoshop 7 (j'ai travaillé avec pour ce wip)
- être en mesure de prendre en charge les différentes versions de Photoshop : par curiosité, j'ai édité plusieurs .abr fournis par défaut avec PS7, et j'ai obtenu plusieurs autres types de codages :puppy: va donc falloir refaire tout ce boulot de décryptage pour chaque version de Photoshop (rhaaa Adobe... :evil: )


je continuerai ça dans les jours qui viennent, je pense (quoique je voudrais participer au thème de mai...)

vous avez tout lu ? bravo, et merci pour votre assiduité, même si vous n'avez pas tout suivi ! :clap: :multi:
et pour les questions, vous savez où me trouver... ;-)

_________________
Image     Image
Image  Image


Mar 26 Mai 2009, 22:41
Profil Site Internet
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Lun 26 Mai 2008, 16:38
Messages: 12768
Localisation: Isère - Jura
Message Re: Question : Utilisez-vous un viewer de brosses ?
Metal-Hurlant a écrit:
Sinon, j'aimerais savoir si on peut transformer en fichier abr des fichiers d'autres logs de dessin comme Painter ou TwistedBrush
( ce serait les fichiers de ce dernier qui m'intéresseraient de transformé )...


donc, re-réponse, après mes longs post sur l'élaboration du programme : oui, des options de conversions pourraient être envisagées.
Mais tu peux maintenant voir ce que je voulais dire : certains morceaux du fichiers, je les comprends, et je peux les extraire. Mais pour d'autres, je ne sais pas à quoi ils servent ! comme les séquences avec les 4 tirets, ça sert à quoi , ça ? et cet octet variable 0x00 ou 0x01 ?

et je ne vous ai pas encore parlé des chaînes de fin de fichier : y'a d'autres trucs en dessous, encore regroupés en blocs, un par brosse ! des données un peu plus textuelles, mais quand même bien obscurs...
et l'enregistrement est fait en miroir entre les blocs "pixels" du haut de fichier, et "texte" du bas :
- mettons une brosse "1". on sauvegarde cette brosse seul, on obtient un fichier .abr constitué de 2 parties : 1A (pixels, la seule que j'ai étudiée de près pour le moment) suivie de 1B (texte)
- on ajoute une 2ème brosse "2" : les données sont alors enregistrées comme suit :
2A 1A 1B 2B... pour 5 brosses, ça devient 5A 4A 3A 2A 1A 1B 2B 3B 4B 5B...
à chaque ajout de brosse, Photoshop insère ses données "pixels" en début de fichier, avant les autres, et ajoute ses données "texte" à la fin !


bref, en résumé, avant de pouvoir créer un .ABR de toute pièce (à partir de brosses d'autres logiciels), il faudra décoder et comprendre le pourquoi de tout ça !
je veux pas être pessimiste, mais.... :roll: :roll:

et je ne suis pas informaticien, moi, je fais ça en dilettante ! et la 3D, hein ? et mon thème de mai, hein ? je les fais quand ?..... ;-)

bon, on verra......

_________________
Image     Image
Image  Image


Mar 26 Mai 2009, 23:26
Profil Site Internet
Modérateur
Modérateur
Avatar de l’utilisateur

Inscrit le: Ven 7 Mar 2008, 11:23
Messages: 8129
Localisation: Forêt d'Orient
Message Re: WIP : création d'un viewer de brosses ABR
:shock: :shock: :shock: :shock:

Alors là ! :schocked:

J'en reviens pas !

Quel boulot ! Et surtout quelle patience ! Moi, j'aurai tout balancé par la fenêtre...

Alors :

:clap:


A mon avis dans le codage doit apparaitre les paramètres par défaut de tes ".abr" (dynamique, diffusion,... etc...)

Heureusement que les abr ne sont pas des fichiers compressés...

Enfin, Adobe n'est pas open source... La tache ne sera pas facilité ! :mrgreen:

_________________
Image


Mer 27 Mai 2009, 07:54
Profil
Administrateur
Administrateur
Avatar de l’utilisateur

Inscrit le: Ven 30 Aoû 2002, 09:53
Messages: 13504
Localisation: Montréal, Québec
Message Re: WIP : création d'un viewer de brosses ABR
OMG, je comprends pas tout :shock:
Une aspirine vite :drinking:

En tout cas c,est super de nous avoir expliqué tout ça !

_________________
3D-Diablotine : Forum 2D/3D pour tous les amateurs de graphisme ^-^
On a tous un brin de talent, il suffit de le mettre en avant et de l’aider à devenir grand

Image
Ma boutique Content Paradise--Boutique cadeaux 3D-D


Ven 5 Juin 2009, 22:20
Profil Site Internet
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 21 messages ]  Aller à la page 1, 2  Suivant


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Rechercher pour:
Sauter vers:  
cron

3D-DIABLOTINE.COM © 2002 - 2018 | Reproduction totale ou partielle interdite



Powered by phpBB © phpBB Group | Translated by phpBB.fr © 2007, 2008 | Designed by Vjacheslav Trushkin