Comment ça marche?

Aëdemphia
Par Sylvanor

Forstale
Par Ødd Clock

Geex Maker
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Les Ombres d'Ymirs
Par Lakitorai

Lije
Par Gaetz

Omega Cerberus
Par Sill Valt

Sarcia
Par Kaëlar

Jeux: Gusnar / Tutos: Comment préserver son pixel-art (...) / Scripts: Xp Dash a la vx et vxAce / Tests: Boy Ichiro Modesty / Tests: Mermaid Swamp /

Chat ( connectés)

Bienvenue
visiteur !






Désactiver
la neige



publicité RPG Maker!

Statistiques

Liste des
membres


Contact

54 connectés actuellement

6872656 visiteurs
depuis l'ouverture

1410 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires






TOP GAMEMAKING


Les 5 plus
visités

Le Comptoir du Clikeur

Guelnika - E Magination

Alex d'Or

Guêpe-Ride! - Webcomics

Oxygenn

Au hasard

Univers RPG Maker XP

Estelante

Pokemon A/C

Les deux derniers

L'Antre Ludique

DoMoon

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





derniers commentaires

Voici la liste des 40 derniers commentaires:

Aller à la page 1 2

Posté dans News - Voeux Oniriques

Roseprincesse - posté le 30/01/2015 à 04:39:19. (1 messages postés)

:ange2

Ødd Clock a dit:


Bonne année à toutes et tous, en espérant plein de bons projets qui nous ferons baver !





Allez ! :ange2

Posté dans Tutoriels - Comment préserver son pixel-art de la dégradation de couleurs de RPG Maker 2003

Roi of the Suisse - posté le 29/01/2015 à 08:36:47. (18016 messages postés)

Voilà le programme qui transforme les images PNG du dossier en images
- aux couleurs de la palette RM2003
- avec un dithering de Floyd-Steinberg
:

http://www.mediafire.com/download/x70crcqgedbu8nq/dithering.zip

Il suffit de mettre les images PNG (pixel art ou painting) dans le dossier avec le programme et de cliquer sur le programme (EXE). L'image sera convertie dans la palette RM2003, mais sera plus ressemblante à l'originale grâce au dithering.
Le programme ne marche que sur les PC 64bits je crois.

Voici la source :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package main;
 
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
 
public class Main {
        public static void main(String[] args) throws IOException{
                String directory = System.getProperty("user.dir");
        directory = directory.replace("\\", "/");
        File dir = new File(directory);
                File[] directoryListing = dir.listFiles();
                if (directoryListing != null) {
                        for (File file : directoryListing) { //pour chaque fichier du dossier
                                System.out.println(file.getName());
                                try{
                                        BufferedImage img = ImageIO.read(file);
                                        int width = img.getWidth();
                                        int height = img.getHeight();
                                        for(int y=0; y<height; y++){
                                                for(int x=0; x<width; x++){
                                                        Color couleurDeLImage = new Color(img.getRGB(x, y));
                                                        int rImage = couleurDeLImage.getRed();
                                                        int vImage = couleurDeLImage.getGreen();
                                                        int bImage = couleurDeLImage.getBlue();
                                                        //on cherche la couleur de la palette correspondante
                                                        int rPalette = (int) (((double) rImage)/(8.25));
                                                        int vPalette = (int) (((double) vImage)/(4.0625));
                                                        int bPalette = (int) (((double) bImage)/(8.25));
                                                        rPalette = rPalette*8 + (int)(rPalette/4);
                                                        vPalette = vPalette*4 + (int)(vPalette/16);
                                                        bPalette = bPalette*8 + (int)(bPalette/4);
                                                        Color couleurPalette = new Color(rPalette,vPalette,bPalette);
                                                        img.setRGB(x, y, colorToInt(couleurPalette) ); //on remplace la couleur de l'image par celle de la palette
        
                                                        //on transfère l'erreur aux pixels voisins
                                                        int ecartR = rImage - rPalette; 
                                                        int ecartV = vImage - vPalette;
                                                        int ecartB = bImage - bPalette;
                                                        if(x+1!=width){
                                                                couleurDeLImage = new Color(img.getRGB(x+1, y));
                                                                Color couleurDeplacee;
                                                                couleurDeplacee = new Color(Math.max(0,Math.min(255,couleurDeLImage.getRed()  +(int)(((double)ecartR)*0.4375))), 
                                                                                                                        Math.max(0,Math.min(255,couleurDeLImage.getGreen()+(int)(((double)ecartV)*0.4375))), 
                                                                                                                        Math.max(0,Math.min(255,couleurDeLImage.getBlue() +(int)(((double)ecartB)*0.4375))) );
                                                                img.setRGB(x+1, y, colorToInt(couleurDeplacee) );
                                                        }
                                                        if(x!=0 && y+1!=height){
                                                                couleurDeLImage = new Color(img.getRGB(x-1, y+1));
                                                                Color couleurDeplacee;
                                                                couleurDeplacee = new Color(Math.max(0,Math.min(255,couleurDeLImage.getRed()  +(int)(((double)ecartR)*0.1875))), 
                                                                                                                        Math.max(0,Math.min(255,couleurDeLImage.getGreen()+(int)(((double)ecartV)*0.1875))), 
                                                                                                                        Math.max(0,Math.min(255,couleurDeLImage.getBlue() +(int)(((double)ecartB)*0.1875))) );
                                                                img.setRGB(x-1, y+1, colorToInt(couleurDeplacee) );
                                                        }
                                                        if(y+1!=height){
                                                                couleurDeLImage = new Color(img.getRGB(x, y+1));
                                                                Color couleurDeplacee;
                                                                couleurDeplacee = new Color(Math.max(0,Math.min(255,couleurDeLImage.getRed()  +(int)(((double)ecartR)*0.3125))), 
                                                                                                                        Math.max(0,Math.min(255,couleurDeLImage.getGreen()+(int)(((double)ecartV)*0.3125))), 
                                                                                                                        Math.max(0,Math.min(255,couleurDeLImage.getBlue() +(int)(((double)ecartB)*0.3125))) );
                                                                img.setRGB(x, y+1, colorToInt(couleurDeplacee) );
                                                        }
                                                        if(x+1!=width && y+1!=height){
                                                                couleurDeLImage = new Color(img.getRGB(x+1, y+1));
                                                                Color couleurDeplacee;
                                                                couleurDeplacee = new Color(Math.max(0,Math.min(255,couleurDeLImage.getRed()  +(int)(((double)ecartR)*0.0625))), 
                                                                                                                        Math.max(0,Math.min(255,couleurDeLImage.getGreen()+(int)(((double)ecartV)*0.0625))), 
                                                                                                                        Math.max(0,Math.min(255,couleurDeLImage.getBlue() +(int)(((double)ecartB)*0.0625))) );
                                                                img.setRGB(x+1, y+1, colorToInt(couleurDeplacee) );
                                                        }
                                                }
                                        }
                                        String nom = file.getName().replace(".png", "").replace(".jpg", "").replace(".bpm", "");
                                        File outputfile = new File(directory+"/"+nom+".png");
                                        System.out.println(directory+"/"+nom+".png");
                                        ImageIO.write(img, "png", outputfile);
                                }catch(Exception e){
                                        //erreur, si le fichier n'est pas une image par exemple
                                        e.printStackTrace();
                                }
                    }
                }
                
                System.out.println("fini !");
        }
        
        public static int colorToInt(Color col){
                int Red = col.getRed();
                int Green = col.getGreen();
                int Blue = col.getBlue();
            Red = (Red << 16) & 0x00FF0000;
            Green = (Green << 8) & 0x0000FF00; 
            Blue = Blue & 0x000000FF; 
            return 0xFF000000 | Red | Green | Blue;
        }
}


Voici un exemple d'image transformée :

image

On ne dirait pas que c'est du 16bits, hein :kirby

Es-tu une star ? | Roi of the Suisse - le site officiel | Kujira no Hara - Démo 4.0 sortie à l'instant !

Posté dans Tutoriels - Comment préserver son pixel-art de la dégradation de couleurs de RPG Maker 2003

Nemau - posté le 29/01/2015 à 06:30:01. (22959 messages postés)

J'avoue, avec ton système ça rend plutôt bienxe.

Trombinoscope ~ Polaris 03 ~ Le Famas ~ Level Up! ~ Les Forges

Posté dans Tutoriels - Comment préserver son pixel-art de la dégradation de couleurs de RPG Maker 2003

Roi of the Suisse - posté le 29/01/2015 à 06:17:51. (18016 messages postés)

Il y a plusieurs types de ditherings. Ce dont tu parles est sûrement le dithering de Bayer, dit "dithering ordonné" :

image


Sinon j'ai fait un programme qui transforme une image avec la palette RM2003, mais en utilisant l'algorithme de dithering de Floyd-Steinberg :

image
à gauche la même image avec un dithering de Floyd-Steinberg, à droite l'image telle que RM2003 la transformerait (on reconnait les zones kaki)

image
image originelle

Es-tu une star ? | Roi of the Suisse - le site officiel | Kujira no Hara - Démo 4.0 sortie à l'instant !

Posté dans Tutoriels - Comment préserver son pixel-art de la dégradation de couleurs de RPG Maker 2003

Nemau - posté le 29/01/2015 à 04:21:16. (22959 messages postés)

Oui j'allais faire la même remarque que srid : le terme "pixel-art" est mal choisi, vu que les couleurs seront altérées quel que soit le style des graphismes.

Pour le reste cf. mes remarques sur Level Up!.

Et merci de m'avoir crédité, t'es chou ! Même si c'est Zimsse qui t'a dit de le faire. =>[]

Citation:

- ou alors vérifiez que la couleur que vous utilisez correspond bien aux formules mathématiques énoncées ci-dessus.


Sous Paint Shop Pro il suffit d'utiliser la sélection par couleur : avec cet outil il suffit de cliquer sur un pixel de telle couleur pour que tous les autres pixels ayant cette couleur soient sélectionnés. Ainsi, en mettant la palette d'RM sur la même image, on voit tout de suite si la couleur qu'on a choisi est présente sur cette palette. Je suppose que Photoshop possède un outil équivalent.

Notez quand même que les 65536 couleurs d'RM 2000/03 ne représentent que 0,4% des 16777216 couleurs existantes (soit 1/256), donc si pour un sprite vous utilisez une couleur au pif il n'y a que 0,4% de chance qu'elle soit sur la palette d'RM. Donc il est plus judicieux de sélectionner directement les couleurs à partir de cette palette (dernière image de l'article).


Edit :

Citation:

Ce qui serait intéressant, ce serait un logiciel qui transforme les couleurs hors-liste en dithering de deux couleurs de la liste. Parce qu'avec du dithering 1bit on peut atteindre une bien meilleure approximation de l'image que sans dithering.


Souvent, lorsqu'un jeu RM 2000/03 est en mode agrandi x2 (640*480), le dithering se voit trop et ne rend du coup rien de bon. Donc ce que tu proposes pourrait quand même parfois donner de bons résultats, mais parfois seulement.

Trombinoscope ~ Polaris 03 ~ Le Famas ~ Level Up! ~ Les Forges

Posté dans Tutoriels - Comment préserver son pixel-art de la dégradation de couleurs de RPG Maker 2003

Roi of the Suisse - posté le 29/01/2015 à 04:10:38. (18016 messages postés)

sriden a dit:

C'est pas vraiment quand on fait du pixel-art que le problème va se poser, c'est surtout quand on importe des illus de type non pixel-art, comme les décors de Sylvanor.

Bah à la base le problème est venu de Shin, qui s'est plaint que son décor pixel-art avait été bousillé par RM2003 : plusieurs couleurs ont été transformées en la même couleur transformant l'image en bouillie.

Au contraire je pense que pour un mec comme Sylvanor, qui fait du painting, c'est foutu d'avance parce qu'il faudrait qu'il convertisse son painting en pixel art. Limite le choix des couleurs lors du painting est flou et moins soigneux, donc une fusion locale des couleurs est moins dangereuse.
Mais tu as raison dans la mesure où la fusion de couleurs sur une vraie image (comme le pont d'Osaka dans mon exemple) entraine un effet de zones assez dégueulasse.


Ce qui serait intéressant, ce serait un logiciel qui transforme les couleurs hors-liste en dithering de deux couleurs de la liste. Parce qu'avec du dithering 1bit on peut atteindre une bien meilleure approximation de l'image que sans dithering.

http://fr.wikipedia.org/wiki/Tramage_%28informatique%29

image

Es-tu une star ? | Roi of the Suisse - le site officiel | Kujira no Hara - Démo 4.0 sortie à l'instant !

Posté dans Tests - Mermaid Swamp

Nemau - posté le 29/01/2015 à 03:55:54. (22959 messages postés)

(il écrit un peu trop vite aussi :clindoeil4)

Trombinoscope ~ Polaris 03 ~ Le Famas ~ Level Up! ~ Les Forges

Posté dans Tutoriels - Comment préserver son pixel-art de la dégradation de couleurs de RPG Maker 2003

Monos - posté le 28/01/2015 à 05:51:11. (54011 messages postés)

Ah je ne savais pas que Rm 2k et 2k3 avait une palette de 65536 couleurs et pas de "true colors".

Merci de l'info.

Pixner|Offgame | Le comptoire des clikeurs

Posté dans Scripts - [Vx ace]Musique dans le menu

spyrojojo - posté le 28/01/2015 à 03:34:04. (652 messages postés)

Légére modification (je m'ennuyer )

nouveautés :
-Possibilité de jouer un Bgs
-Possibilité de régler le volume du Bgs
-Possibilité de désactiver la Bgm
-Possibilité de désactiver la Bgs
-Possibilité de régler le tempo du Bgm
-Possibilité de régler le tempo du Bgs

Lien du script : http://paste.awesom.eu/Spyrojojo/G7eN

mes projets : Fall/Délirium //// Mon DeviantArt

Posté dans Jeux - Gusnar

hassen - posté le 28/01/2015 à 01:04:12. (276 messages postés)

Lien mort :goutte

Posté dans Tutoriels - Comment préserver son pixel-art de la dégradation de couleurs de RPG Maker 2003

sriden - posté le 27/01/2015 à 18:45:41. (15377 messages postés)

Citation:

Le pixel-art subit parfois une grande dégradation.


C'est pas vraiment quand on fait du pixel-art que le problème va se poser, c'est surtout quand on importe des illus de type non pixel-art, comme les décors de Sylvanor. :s
Mais gg.

 

Forum du FAMAS | Vader Ou La Fin des Haricots | La 7e porte (jeu multimaker complet) | Escapade (jeu complet) | Ma zyk : Diaphanous Horizons

Posté dans Sorties - FINAL FOREVER - Michel Forever 2

TeknoRider - posté le 27/01/2015 à 17:32:30. (37 messages postés)

tu l'as essayé ? crois-moi , il est bien différent du 1 ( cette bouse )

Posté dans Tests - Boy Ichiro Modesty

RoxasHeartsXII - posté le 26/01/2015 à 21:05:47. (62 messages postés)

intéressant !

l'avenir n'existe pas seul le futur subsiste...

Posté dans Tests - Mermaid Swamp

verehn - posté le 26/01/2015 à 20:20:26. (3617 messages postés)

Hassen teste plus vite que son ombre. :ombre

PakuPaku , Winged Light , Ruin , Ma galerie , Pack graphique gratuit plateforme 2D

Posté dans Jeux - Escapade

sriden - posté le 26/01/2015 à 19:53:05. (15377 messages postés)

Citation:

Sriden n'est peut-être pas le maker du siècle

Ah, moi je trouve que si. image

 

Forum du FAMAS | Vader Ou La Fin des Haricots | La 7e porte (jeu multimaker complet) | Escapade (jeu complet) | Ma zyk : Diaphanous Horizons

Posté dans Jeux - Escapade

Nemau - posté le 26/01/2015 à 19:21:36. (22959 messages postés)

Citation:

même si j’ai eu l’impression au début du jeu de retrouver un style similaire à ceux des Tom-Tom et Nana


Ça je le garde dans un coin pour la prochaine fois que sriden se moque de moi. =>[]

Citation:

d’ailleurs je me demande où sont les mois passés à construire ce jeu… Personnellement j’aurais juste besoin de demander un peu d’aide et hop, quelques jours maximum après c’est bon.


Faux, faux, définitivement faux. ><' Essaie de faire un jeu avec ce niveau de soin et tu verras. :p
Attention, je ne dis pas que tu doives faire aussi bien ou mieux pour avoir le droit critiquer, je dis juste que tu te trompes grandement dans ton estimation du temps que prend la réalisation d'un jeu. :clindoeil4
Un jeu de 45 minutes on peut le faire en quelques jours oui, mais on se retrouvera avec un jeu bugué, moche, au game design bancal, aux textes blindés de fautes...

Sriden n'est peut-être pas le maker du siècle (mais n'a pas non plus à rougir de ses productions), mais s'il a bien une qualité c'est d'être productif : il make nettement plus vite que la plupart des autres membres de la commu, donc voilà, j'ai eu un peu mal pour lui en lisant ta remarque. X) (mais j'ai conscience que tu ne cherchais pas à blesser ou quoi que ce soit, t'inquiète ^^)

Trombinoscope ~ Polaris 03 ~ Le Famas ~ Level Up! ~ Les Forges

Posté dans Sorties - FINAL FOREVER - Michel Forever 2

Nemau - posté le 26/01/2015 à 19:07:44. (22959 messages postés)



=>[]

Trombinoscope ~ Polaris 03 ~ Le Famas ~ Level Up! ~ Les Forges

Posté dans Articles personnels - Question sur oniromancie Membres ancien me répondre svp

rindai3 - posté le 26/01/2015 à 12:07:21. (9 messages postés)

Bonjour je me pose plusieurs question sur le site je vais aller au vif du sujet
Oniro est t'il mort ? parce que je vois les différent écarts entre les poste et le cruelle manque d'activité
Combien de temps en moyenne faut-il attendre pour avoir une réponse a un jeu,post,article ?
Car la sa devient grave sa fait 1 mois que j'attend une réponse

Et je pense que vous vous en douter comment devenir Admin ? Car j'ai très envie de répondre a ses centaine de gens qui ne sont en attentent d'une réponse voila

Si vous êtes admin vous fâcher pas je sais que vous faite votre possible et je suis prêt a vous aider!!

Le maker de demain

Posté dans Articles personnels - Retirer son projet

rindai3 - posté le 26/01/2015 à 11:55:35. (9 messages postés)

Bonjour je suis dans la détresse j'ai poster un projet plutot pourrie j'aimerais que un admin fasse passer le mot et refuse le projet s'il vous plait le nom est Legend of wired merci

Le maker de demain

Posté dans Jeux - Escapade

zeus81 - posté le 25/01/2015 à 23:16:31. (10309 messages postés)

Citation:

Bonne continuation dans ta carrière de maker, tu risques bien de devenir une perle.

Trop tard malheureusement, c'est bientôt la retraite pour lui.


Aller à la page 1 2

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Previews | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Forstale | Geex Maker | Inexistence | La Légende d'Ibabou | Les Ombres d'Ymirs | Lije | Omega Cerberus | Sarcia
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes