Voilà, pour le dev d’un jeu, je vais avoir régulièrement besoin de séparer une image de 96128 et multiples images de 3232.
Les forts en maths auront compris que ca fait (332)(4*32).
Le truc, c’est que le faire une fois à la main c’est déjà chiant, je n’imagine même pas le faire à la chaîne sans mettre en place un automatisme.
Si vous aviez dans votre besace une idée, un script, un petit soft gratos pour faire ça, je vous en serais très reconnaissants.
A noter que je bosse sous linux, avec Gimp, mais que je suis preneur de toute autre solution, y compris du windows, tant qu’on reste dans la légalité comme de bien entendu.
Merci d’avance
et tu ne peux pas le faire en live ? j’avais eu le meme probleme il y a quelque temps, sur une demo pour me faire la main avec la libnds ( trouvé ), et au final c’etait nettement plus efficace niveau workflow de balancer les images completes dans mon executable, et de les split au chargement
parceque a partir du moment ou tu sais lire un pixel donné, et faire une texture en memoire, ton histoire avec quelques for c’est réglé super rapidement en C/C++
img = Image.open(filename)
for x in range(img.size[0]/xsize):
for y in range(img.size[1]/ysize):
imgpiece = Image.crop((xxsize, yysize, (x+1)*xsize, (y+1)*ysize))
imgpiece.save(filename[:-4] + ‘’ + str(x) + '’ + str(y) + filename[-4:]) #sauve sous le nom toto_0_0.png, toto_0_1.png, etc.[/code]
Bon, ca va crasher si ton image n’est pas divisible, i.e. x%xsize > 0 ou y%ysize > 0, mais c’est pas la mer a boire de rajouter un bout de script qui te la retaille.
[quote=« Kzi, post:2, topic: 50117 »]et tu ne peux pas le faire en live ? j’avais eu le meme probleme il y a quelque temps, sur une demo pour me faire la main avec la libnds ( trouvé ), et au final c’etait nettement plus efficace niveau workflow de balancer les images completes dans mon executable, et de les split au chargement
parceque a partir du moment ou tu sais lire un pixel donné, et faire une texture en memoire, ton histoire avec quelques for c’est réglé super rapidement en C/C++[/quote]J’y ai bien sur pensé, mais la plate-forme visée est Android et d’experience je sais que la manipulation d’image est une assez mauvaise idée, vue la petite taille de la VM ( 16Mo ). Si je peux en plus éviter cette création à chaque execution du jeu, qui peux être couteuse en temps, ça sera ça de gagner.
L’idée est bonne, mais pas applicable avec les vilaines contraintes d’une plateforme mobile.
[quote=« Coldorak, post:3, topic: 50117 »]séparer une image, perso, je ferais ça viteuf en perl ou en PHP avec GD
Genre avec http://www.php.net/manual/fr/function.imagecopy.php[/quote]Ouais, sauf que je suis pas dev Perl ou Php et que j’envisage nettement plus un truc beubeuh pour gros nullos qu’un truc de l33t haxxorz qui necessite d’installer un serveur web + moteur php + truc perl ( ça commence à faire un peu beaucoup). Si tu as une maniere simple de mettre ça en place, je suis preneur.
[quote=« LodeRunner, post:4, topic: 50117 »]Sinon, si tu touches en Python, l’API PIL est excellente. Python Imaging Library (PIL)
…[/quote]Je touche pas trop en python et en plus à chaque fois ça me fait repenser à la photo de Bussiere et son bouquin
[quote=« kaneloon, post:6, topic: 50117 »]On doit pouvoir faire ça avec un script photoshop, mais sinon, j’avais utilisé Irfanview pour faire du traitement simple d’images en batch.[/quote]Photoshop = pas possible.
Sinon Irfanview ou Xnview, même combat, pas de traitement de ce type existant
On m’a soufflé ImageMagick qui permet de faire pas mal de truc en ligne de commande : http://www.imagemagick.org/Usage/
Je me rabas là-dessus en attendant.
Tu lui donnes le nom du fichier en premier paramètre, largeur et hauteur des morceaux souhaités ensuite, et il te génère des fichiers au format png.
Exemple : PicSplit source.png 32 64 ou PicSplit source.png 32.
Y’a le source avec, l’exe est compilé sur .net 2.0
Edit : ça supporte les dimensions non multiples de la largeur demandée.[/quote]
Roh comment il déchire le Styx…
Merci mais fallait pas, je cherchais un truc tout fait ( sinon j’aurai aussi codé mon truc en java ).
Bonjour/Bonsoir
Je sais que ce topic ayant été crée il y a 9 ans ( ouaw ) , mais @Styx31
tu peux svp reuplowder cette appli que t’as codé . car j’en est besoin , le lien ne marche plus .
Un grand merci d’avance
Pyco
Euh tout est parti à la benne depuis longtemps. Je te conseille de faire comme @Monsieur_Max à l’époque : utiliser imagemagick qui fait ça nativement à priori.
Je ne vais pas me prononcer à la place de Monsieur @Monsieur_Max (je suis obligé par contrat :), cf un autre thread … ) mais je pense qu’il serait préférable que tu décrives ce que tu veux faire (si c’est possible). Les geekzoniens qui trainent ici ont en effet la sale manie de trouver des solutions meilleures que celle à laquelle on pensait au départ.
(Même si parfois en chemin on s’égare sur des solutions qui nécessitent de changer l’ordi, l’OS, l’utilisateur et son animal de companie)
En plus, ça montre qu’on a soi même fait un effort avant d’en demander un aux autres (et accessoirement, ça éviterait qu’il fasse l’outil, et que ça ne fasse pas ce que tu veux)