Il existe plusieurs scripts capables d’enregistrer le contenu d’instances de la classe Bitmap en fichier .PNG. Ma version a pour caractéristique d’être probablement une des plus rapides, puisqu’elle fait exclusivement appel à du code C compilé dans une DLL, et fait appel aux fonctions de la librairie libpng.
Utilisation :
Il faut copier le fichier MGC_PNG.dll à la racine de votre projet RPG Maker (XP, VX ou VX Ace).
Télécharger le fichier MGC_PNG.dll
Puis insérer un nouveau script au-dessus de main, qui contient le code suivant :
#====================================================================
# Enregistrer les Bitmap en PNG
# v.1.0
# Auteur : MGC
#====================================================================
# ** Bitmap
#--------------------------------------------------------------------
# Ajoute une méthode pour créer un fichier image PNG
# à partir d'une instance de la classe Bitmap.
# Nécessite également la dll "MGC_PNG.dll".
#====================================================================
class Bitmap
#--------------------------------------------------------------------------
# * Constantes
#--------------------------------------------------------------------------
CREATE_PNG = Win32API.new("MGC_PNG", "createPNG", "ll", "l")
#--------------------------------------------------------------------------
# * Méthode d'appel pour créer un fichier PNG
# chemin : chemin + nom du fichier à créer
#--------------------------------------------------------------------------
def save_as_png(chemin)
unless chemin[/\//] then chemin = './' << chemin end
CREATE_PNG.call(self.__id__, chemin.__id__)
end
end
Appeler alors la méthode save_as_png à partir d'une instance de la classe Bitmap, en passant en paramètre le chemin concaténé avec le nom du fichier à enregistrer.
ATTENTION : assurez-vous que le chemin existe bien avant d'enregistrer une image ! Au besoin vous pouvez mettre en place des sécurités en ruby en utilisant des commandes Dir.mkir
.