1

Bonjour.
J'ai cherché sur le net, mais rien trouvé. J'aimerais convertir une bitmap 24 bits (16.8 millions de couleurs) en un nombre quelconque de couleurs (256, 16 ou autres) mais non pas en utilisant les couleurs système Windows, mais une palette qui soit optimisée pour la bitmap en question (du genre la bitmap ne contient qu'un dégradé de bleu vers le noir de 256 étapes, on pourrait utiliser toutes les 256 couleurs dans la palette pour ce dégradé).
Que me conseilleriez-vous? Là je viens d'essayer de réduire la précision (diviser par quelque chose puis le remultiplier) et compter le nombre de couleurs que ça fait à chaque fois, et ce en utilisant un diviseur toujours plus grand plus jusqu'à ce que j'ai autant voire moins de couleurs que désiré dans ma palette. Le rendu est plutôt moche, sans compter que même codé en C, c'est hyper-lent.
Vous n'auriez pas une meilleure idée?
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

2

e de chaque élément de la palette) + (idem pour le vert) + (idem plus le bleu)Je viens d'essayer un autre algo. Là le rendu est nettement meilleur; je fais:valeur absolue (rouge de ce pixel - rougCa me donne un résultat qui est en fait la diffférence entre les deux couleurs. Alors je regarde d'abord combien de couleurs j'obtiens avec une tolérance de zéro. S'il y en a trop, on la met à 1, puis à 2, etc. jusqu'à ce que ça donne 256 couleurs ou moins.
Qu'en pensez-vous? Mais ça ne me permet pas de faire du dithering...
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

3

Oui, c'est pas mal, mais ça donne certainement largement trop de poids à des valeurs "transitoires", et qui plus est la norme ∞ n'est pas forcément idéale...

Ce que tu peux faire, c'est attribuer un poids à chaque couleur (par exemple, chaque pixel pourrait avoir un poids de 1/(1+variation_de_couleur_à_son_voisinage)), et puis essayer de minimiser la somme des w[ i ]*abs(c[ i ]_original - c[ i ]_256couleur) ... (en fait, ça serait probablement plus simple à calculer avec la norme euclidienne)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

4

Désolé, je ne comprends pas tout là... (mais merci quand même! smile)
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

5

argl, saloperie de [ i ] sick

Enfin, tout dépend de la qualité que tu veux avoir.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

6

Une qualité correcte quand-même smile Mais j'aimerais surtout faire du dithering, mon algo actuel me convient. Si je prends une très vieille version d'iPhotoPlus qui faisait ça, elle s'en sort très bien, et en plus permet de faire du tramage en mode motif (utilise des couleurs plus vives mais tout de même optimales, c'est ça que j'aimerais), et par diffusion (s'occupe de tramer en utilisant les couleurs optimales calculées.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

7

Voilà un PNG qui est plus parlant (il s'agit d'une conversion de mon avatar en 16 couleurs):
conversions.png
En premier, il y a mon prog en mode console (avec les indications), en-dessous il y a les trois conversions effectuées par iPhotoPlus (perso j'ai une préférence pour celle du milieu wink)
Et... euh... voilà l'original:
garnetavatar.png
C'est déjà autre chose hm?
Voilà l'exécutable et la la source. N'ajoute pas de suffixe .bmp au nom de l'image, et vas-y molo sur la taille hein... déjà en 1024x768 ça prend quelques secondes...
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

8

Oui, celle du milieu est clairement la plus fidèle aux couleurs. Ton programme a des progrès à faire pour arriver à la même qualité. sad
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

Et on peut avoir le fameux wingraph.h ? (juste pour voir ce que donnerait ma méthode)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

10

Heu là c'est un peu dur... Bon je vais voir ce que je peux faire... (wingraph n'est pas terminée, je suis *en train* d'écrire la doc, etc.)
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

11

Pas grave, je voudrais juste pouvoir recompiler smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

12

Ok, voilà:
ATTENTION: NE SURTOUT PAS DISTRIBUER LA "LIBRAIRIE" DANS SON ETAT ACTUEL.
[url]http://www.isuisse.com/brunni2/WinGraph - Installation.zip[/url]
Après avec Visual Studio (version 6.0) tu crées un nouveau projet de type Win32 application, tu choisis un projet vide et tu y ajoutes le fichier source que tu as téléchargé. Ca devrait aller. smile
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

13

OK, merci smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

14

Je l'enlève déjà. Ca évite tout problème.
Alors tu t'en sors?
Note: La fonction de chargement de bitmap ne fonctionne que pour les bitmaps 24 bits. De plus, elles doivent être d'une taille horizontale multiple de 4.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

15

euh, pour passer en 256 couleurs, tu prends soit les 3 premiers soit les 2 premiers bits pour le bleu, non ?
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

16

Effectivement (il me semble) c'est 3 bits/rouge, 3 bits/vert et 2 bits/bleu.
Mais là on cherche une palette optimisée et éventuellement faire du tramage pour que ce soit plus joli...
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

17

Bon j'ai pas eu le temps de faire ça, mais je regarderai peut-être Un Jour (tm) wink

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)