Aller au contenu

Recommended Posts

**Dernière modif script jpg 04/08/2023 **

 

Des fois ça m'embête de faire enregistrer sous et de prendre la liste déroulante pour choisir jpeg et les options.

 

Du coup pour ceux qui ont déjà activé les scripts krita (je l'ai fait il y a un moment mais de mémoire c'est dans "Gestionnaire module python" il faut cocher "scripter" tout en bas et sûrement "lanceur de script Krita" aussi) je vais proposer quelques scripts qui renregistrent en jpg ou en psd directement (si vous avez des idées d'autres scripts utiles à l'occasion).

 

image.png.858c00d1a5dd182723db3c5bdf938fe1.png

On copie colle le code 

image.png.ddf2d90efcb3f7660491b8a5d6949bef.png

 

Fichier -> enregistrer sous dans la pop up de script, vous vous créez un répertoire script et vous enregistrez en .py

 

et ensuite comme pour le changement de brosse rapide dont j'ai parlé ici (ce n'est pas pour le plaisir de m'auto citer c'est juste le même principe 😉 ) un va utiliser les raccourcis 10 scripts ce coup ci. Avec les ... vous allez choisir votre fichier .py et voilà, quand je fais Ctrl + maj +1 ça m'ouvre la pop up d'enregistrement jpg direct. (enfin ça devrait mais en pratique pas tellement, je vais fouiller ça dès que je pourrai) en attendant ça fonctionne si je change le raccourci (Ctrl Alt A  pour moi).

Plus de détails et scripts dans les messages en dessous. (un peu par flemme j'ai demandé dse l'aide à chat gpt je vous l'avoue)

 

image.png.f2ed14e835938154906a64e737b12694.png

image.png.a0e152e7a7cd3ea74dd1cc3962e55ee5.png

image.png

Modifié par dabulTac

Krita et XP-pen Artist 16 2nd gen

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors du coup "enregistrer sous en jpg" .

Edit 04/08/2023 on saisi soi même les paramètres optionnels du jpg

Note : quand je lance le script via le menu ça le fait 2 fois de suite mais c'est ok avec le raccourci

from krita import *
import os
from PyQt5.QtWidgets import QFileDialog

def save_as_jpg(image, save_path):
    success = image.saveAs(save_path)
    return success

def get_incremented_file_name(file_path):
    folder, name = os.path.split(file_path)
    name, ext = os.path.splitext(name)
    index = 1
    while os.path.exists(file_path):
        file_path = os.path.join(folder, f"{name}_{index}{ext}")
        index += 1
    return file_path

def main():
    # Assurez-vous que Krita est ouvert et qu'une image est active
    if not Krita.instance():
        print("Veuillez ouvrir Krita pour exécuter ce script.")
        return

    image = Krita.instance().activeDocument()
    if not image:
        print("Veuillez ouvrir une image dans Krita.")
        return

    # Obtenir le chemin du fichier de l'image active, ou une chaîne vide si le chemin n'est pas valide
    image_file_path = image.fileName() if image and image.fileName() else ""

    # Obtenez le nom du fichier sans le chemin et l'extension pour pré-remplir la boîte de dialogue
    _, image_file_name = os.path.split(image_file_path)
    name_without_extension, _ = os.path.splitext(image_file_name)

    # Ouvrir une fenêtre de dialogue pour spécifier le chemin et le nom du fichier
    save_path, _ = QFileDialog.getSaveFileName(None, "Enregistrer sous", os.path.join(os.path.dirname(image_file_path), name_without_extension), "Images (*.jpg)")

    if not save_path:
        print("L'enregistrement a été annulé.")
        return

    success = save_as_jpg(image, save_path)
    if success:
        print(f"L'image a été enregistrée au format JPG sous : {save_path}")
    else:
        print("Une erreur s'est produite lors de l'enregistrement de l'image.")

if __name__ == "__main__":
    main()

 

Modifié par dabulTac
  • J'aime 1

Krita et XP-pen Artist 16 2nd gen

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense faire .psd bientôt (parce que personnellemnt je passe souvent de krita à procreate donc j'exporte).

Si vous avez d'autres idées elles sont les bienvenues. Je trouve ça rigolo

Par contre je ne suis pas sûre d'être très douée pour expliquer si vous avez des problemes particuliers , on verra bien. De base j'ai fait celui ci pour moi parce qu'en bonne informaticien tout ce qui automatisable est automatisé (ça veut dire que certains dev, dont moi, sont de grosses flemasses ok 😆) et du coup je trouverais ça idiot de le garder dans mon coin.

Krita et XP-pen Artist 16 2nd gen

Partager ce message


Lien à poster
Partager sur d’autres sites

Enregistrer en psd

import os
from krita import *
from PyQt5.QtWidgets import QFileDialog

def obtenir_nom_fichier(default_name):
    options = QFileDialog.Options()
    file_name, _ = QFileDialog.getSaveFileName(None, "Enregistrer en PSD", default_name, "Fichiers Photoshop (*.psd);;Tous les fichiers (*)", options=options)
    return file_name

def enregistrer_en_psd(document, chemin_fichier):
    if document is not None and document.isWritable():
        psd_options = Krita.PSDSaveOptions()
        document.saveAs(chemin_fichier, psd_options)
        print(f"Document enregistré en PSD : {chemin_fichier}")
    else:
        print("Erreur : Document non modifiable ou non ouvert.")

# Obtenir le document actif
document = Krita.instance().activeDocument()

# Vérifier si le document a déjà été enregistré
repertoire_par_defaut = None
nom_fichier_par_defaut = "sans_titre.psd"

if document is not None:
    if document.fileName():
        repertoire_par_defaut = os.path.dirname(document.fileName())
        nom_fichier_par_defaut = os.path.splitext(os.path.basename(document.fileName()))[0]

# Obtenir le nom de fichier de l'utilisateur
nom_fichier = obtenir_nom_fichier(os.path.join(repertoire_par_defaut, nom_fichier_par_defaut))

# Vérifier si l'utilisateur a annulé la boîte de dialogue
if nom_fichier:
    enregistrer_en_psd(document, nom_fichier)

 

Krita et XP-pen Artist 16 2nd gen

Partager ce message


Lien à poster
Partager sur d’autres sites

News pour le Ctrl Maj 1 : les raccourcis avec maj + un chiffre fonctionnent parfois mal , du coup j'ai mis alt + maj + j pour enregistrer en jpg et alt +maj+p pour enregistrer en psd (il étaient déjà utilisé pour passer en mode luminosité lineaire ou dure mais je ne les utilise pas).

Ca se change ici (il faut changer ici ET avoir choisi le fichier dans 10 scripts bien sûr)

image.png.cc674d1396366a6aa119d4c152e766d8.png

  • J'aime 1

Krita et XP-pen Artist 16 2nd gen

Partager ce message


Lien à poster
Partager sur d’autres sites

et voilà pour le .kra (que j'ai mis sur mak+alt+k pour rester logique (c'était "sélectionner le mode de mélange assombrir")

import os
from krita import *
from PyQt5.QtWidgets import QFileDialog

def obtenir_nom_fichier(default_name):
    options = QFileDialog.Options()
    file_name, _ = QFileDialog.getSaveFileName(None, "Enregistrer en .kra", default_name, "Fichiers Krita (*.kra);;Tous les fichiers (*)", options=options)
    return file_name

def enregistrer_en_kra(document, chemin_fichier):
    if document is not None and document.isWritable():
        document.saveAs(chemin_fichier)
        print(f"Document enregistré en .kra : {chemin_fichier}")
    else:
        print("Erreur : Document non modifiable ou non ouvert.")

# Obtenir le document actif
document = Krita.instance().activeDocument()

# Vérifier si le document a déjà été enregistré
repertoire_par_defaut = None
nom_fichier_par_defaut = "sans_titre.kra"

if document is not None:
    if document.fileName():
        repertoire_par_defaut = os.path.dirname(document.fileName())
        nom_fichier_par_defaut = os.path.splitext(os.path.basename(document.fileName()))[0]

# Obtenir le nom de fichier de l'utilisateur
nom_fichier = obtenir_nom_fichier(os.path.join(repertoire_par_defaut, nom_fichier_par_defaut))

# Vérifier si l'utilisateur a annulé la boîte de dialogue
if nom_fichier:
    enregistrer_en_kra(document, nom_fichier)

 

Krita et XP-pen Artist 16 2nd gen

Partager ce message


Lien à poster
Partager sur d’autres sites

  • dabulTac changed the title to [ASTUCE] Script et raccourcis pratiques pour krita

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Vous avez collé du contenu avec mise en forme.   Supprimer la mise en forme

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Créer...