.
virusphoto virusphoto

Identifiant

Mot de passe

Derniers messages Messages du jour Sujets sans réponse S'inscrire

Rejoignez-nous !

VirusPhoto » Forum » Les logiciels photo » Gimp

Noter la discussion : [Script] Proposition pour enfuse

Aller au premier non-lu
  #1  
non lus 15/12/2010, 03h13
Avatar de grinwik
Membre
Ma pratique de la photo: Pratique occasionnelle
 
Messages: 15
280 Photiz - Faire un don

[Script] Proposition pour enfuse


Bonjour !

( Allez hop, fini la passivité; premier message sur VP )

Je pense avoir pas mal cherché mais je n'ai pas trouvé de plugin enfuse pour Gimp. Dans mon "workflow" ça me serait très utile alors j'ai commencé à en écrire un et partage ça au cas ou.

Il est tout simple : chaque calque visible est sauvegardé dans un fichier temporaire (png) puis ces fichiers sont passés en paramètre à enfuse, et le fichier de sortie est chargé dans un nouveau calque.
Si un calque visible possède un masque actif, il est copié et le masque est appliqué sur cette copie.
A la fin, les fichiers (et les éventuels calques) temporaires sont supprimés.

Les paramètres d'enfuse ne sont pas gérés, le nettoyage si on interrompt l'exécution du script non plus.
Si ça intéresse quelqu'un, dites-le, ça motive toujours pour continuer ^^ (à moins qu'un bidouilleur plus consciencieux veuille partir sur quelque chose de mieux).

Le script (Python) :
Pas testé sous Windows mais à priori je ne vois pas pourquoi ça ne tournerait pas (au pire il faut peut-être remplacer 'enfuse' par le chemin complet (c:/.../enfuse.exe) à la ligne 28 du script.

Code:
#!/usr/bin/python # -*- coding: utf-8 -*- from gimpfu import * from tempfile import * from itertools import ifilter import os def enfuse(image, drawable): layers = [] layers_tmp = [] for layer in ifilter(pdb.gimp_layer_get_visible, image.layers): if pdb.gimp_layer_mask(layer) and pdb.gimp_layer_get_apply_mask(layer): new_layer = pdb.gimp_layer_copy(layer,1) layers_tmp.append(new_layer) pdb.gimp_image_add_layer(image, new_layer, -1) pdb.gimp_layer_remove_mask(new_layer,0) layers.append(new_layer) else: layers.append(layer) filenames = [mktemp(suffix='.png') for _ in range(len(layers))] output = mktemp(suffix='.png') for layer, filename in zip(layers, filenames): pdb.file_png_save(image, layer, filename, filename, 0, 0,0,0,0,0,0) command = 'enfuse -o %s ' % output + ' '.join('%s' % f for f in filenames) os.system(command) new_layer = pdb.gimp_file_load_layer(image, output) pdb.gimp_image_add_layer(image, new_layer ,0) for layer in layers_tmp: pdb.gimp_image_remove_layer(image, layer) map(os.remove, filenames) os.remove(output) register( "Enfuse", "", "", "grinwik", "", "28/11/2010", "<Image>/Python-Fu/Enfuse", "*", [], [], enfuse) main()
Réponse avec citation

Pour participer aux discussions et avoir accès à tous les outils
proposés sur VirusPhoto, inscrivez-vous en quelques secondes : cliquez ici.

Outils de la discussion Chercher dans ce sujet
Rechercher dans la discussion:

Recherche avancée

Noter la discussion
Evaluez cette discussion :
  #2  
non lus 16/12/2010, 14h33
Avatar de pickachu
Membre
Ma pratique de la photo: Je débute
Matériel: Nikon D7000 + 18-105
 
Messages: 139
4510 Photiz - Faire un don
et bien pour un premier message c'est tout bon n'utilisant pas gimp je ne peut pas tester ton script mais c'est une très bonne initiative bienvenue parmis les virussiens
Réponse avec citation
VirusPhoto » Forum » Les logiciels photo » Gimp

Réponse

Discussion précédente / suivante dans cette rubrique :
« comment installer des sript (fu) dans gimp sur Mac | changement de couleurs »

Non-lu Non-lu  
Bloguer ceci Outils de la discussion Rechercher dans la discussion Noter la discussion

Outils de la discussion Rechercher dans la discussion
Rechercher dans la discussion:

Recherche avancée
Noter la discussion
Noter la discussion:

 


LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Powered by vBulletin® Version 3.8.2 - Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
2006 - 2017 © ® VirusPhoto. Tous droits réservés.