Téléverser les fichiers vers "Font perdu"
This commit is contained in:
commit
74fda96a1c
149
Font perdu/FondPerduScript_LockedGuides_v3.1.jsx
Normal file
149
Font perdu/FondPerduScript_LockedGuides_v3.1.jsx
Normal file
@ -0,0 +1,149 @@
|
||||
// Script JSX pour Photoshop : Création de fonds perdus avec repères verrouillés
|
||||
// Copyright © 2024 Sébastien VTL
|
||||
#target photoshop
|
||||
|
||||
// Fonction principale
|
||||
function createBleed() {
|
||||
try {
|
||||
// Vérifier si les unités du document sont en millimètres ou centimètres
|
||||
if (app.preferences.rulerUnits !== Units.MM && app.preferences.rulerUnits !== Units.CM) {
|
||||
throw new Error("La configuration du document doit être en millimètres ou centimètres. Veuillez changer les unités avant d'exécuter ce script.");
|
||||
}
|
||||
|
||||
// Créer une fenêtre de dialogue pour la sélection des dimensions et des options
|
||||
var settings = showSettingsDialog();
|
||||
if (!settings) return; // Si annulé, sortir
|
||||
|
||||
// Obtenir la résolution du document actuel
|
||||
if (app.documents.length === 0) {
|
||||
throw new Error("Aucun document ouvert. Veuillez ouvrir un document pour exécuter ce script.");
|
||||
}
|
||||
|
||||
var doc = app.activeDocument;
|
||||
var dpi = doc.resolution; // Résolution du document en DPI (pixels par pouce)
|
||||
var mmToPixels = function(mm) { return (mm / 25.4) * dpi; }; // Conversion mm -> pixels
|
||||
var cmToPixels = function(cm) { return (cm * 10) / 25.4 * dpi; }; // Conversion cm -> pixels
|
||||
|
||||
// Calculer les dimensions en pixels en fonction des unités
|
||||
var bleedPixels, safeZonePixels;
|
||||
if (app.preferences.rulerUnits === Units.MM) {
|
||||
bleedPixels = mmToPixels(settings.bleedSize);
|
||||
safeZonePixels = mmToPixels(settings.safeZoneSize);
|
||||
} else if (app.preferences.rulerUnits === Units.CM) {
|
||||
bleedPixels = cmToPixels(settings.bleedSize / 10);
|
||||
safeZonePixels = cmToPixels(settings.safeZoneSize / 10);
|
||||
}
|
||||
|
||||
// Ajuster le plan de travail
|
||||
resizeCanvasWithBleed(doc, bleedPixels);
|
||||
|
||||
// Ajouter et verrouiller les repères
|
||||
addGuidesAndLock(doc, bleedPixels, safeZonePixels, doc.width, doc.height, settings.addCenterGuides);
|
||||
|
||||
alert("Plan de travail ajusté et repères verrouillés avec les dimensions suivantes :\n" +
|
||||
"- Fond perdu : " + (settings.bleedSize * 10) + " mm\n" +
|
||||
"- Zone de protection : " + (settings.safeZoneSize * 10) + " mm\n" +
|
||||
(settings.addCenterGuides ? "- Repères centraux ajoutés\n" : "") +
|
||||
"\nVersion 3.0" +
|
||||
"\nScript Créé par Sébastien VTL.");
|
||||
} catch (e) {
|
||||
alert("Erreur : " + e.message);
|
||||
}
|
||||
}
|
||||
|
||||
// Fonction pour afficher le menu de sélection avec option pour les repères centraux
|
||||
function showSettingsDialog() {
|
||||
var dialog = new Window("dialog", "Paramètres de réglages");
|
||||
dialog.orientation = "column";
|
||||
|
||||
// Section pour le fond perdu
|
||||
var bleedGroup = dialog.add("group");
|
||||
bleedGroup.add("statictext", undefined, "Fond perdu (en mm) :");
|
||||
var bleedDropdown = bleedGroup.add("dropdownlist", undefined, ["3", "4", "5"]);
|
||||
bleedDropdown.selection = 0;
|
||||
|
||||
// Section pour la zone de protection
|
||||
var safeZoneGroup = dialog.add("group");
|
||||
safeZoneGroup.add("statictext", undefined, "Zone de protection (en mm) :");
|
||||
var safeZoneDropdown = safeZoneGroup.add("dropdownlist", undefined, ["3", "4", "5"]);
|
||||
safeZoneDropdown.selection = 0;
|
||||
|
||||
// Option pour ajouter des repères centraux
|
||||
var centerGuideGroup = dialog.add("group");
|
||||
centerGuideGroup.add("checkbox", undefined, "Option repère centre document");
|
||||
var centerGuideCheckbox = centerGuideGroup.children[0];
|
||||
centerGuideCheckbox.value = false; // Désactivé par défaut
|
||||
|
||||
// Boutons OK et Annuler
|
||||
var buttonGroup = dialog.add("group");
|
||||
buttonGroup.alignment = "center";
|
||||
var okButton = buttonGroup.add("button", undefined, "OK");
|
||||
var cancelButton = buttonGroup.add("button", undefined, "Annuler");
|
||||
|
||||
cancelButton.onClick = function () { dialog.close(0); };
|
||||
okButton.onClick = function () { dialog.close(1); };
|
||||
|
||||
if (dialog.show() !== 1) return null;
|
||||
|
||||
return {
|
||||
bleedSize: parseFloat(bleedDropdown.selection.text) / 10, // Convertir 3, 4, 5 en 0.3, 0.4, 0.5
|
||||
safeZoneSize: parseFloat(safeZoneDropdown.selection.text) / 10,
|
||||
addCenterGuides: centerGuideCheckbox.value
|
||||
};
|
||||
}
|
||||
|
||||
// Fonction pour ajuster le plan de travail
|
||||
function resizeCanvasWithBleed(doc, bleedPixels) {
|
||||
var originalWidth = doc.width;
|
||||
var originalHeight = doc.height;
|
||||
doc.resizeCanvas(originalWidth + 2 * bleedPixels, originalHeight + 2 * bleedPixels, AnchorPosition.MIDDLECENTER);
|
||||
}
|
||||
|
||||
// Fonction pour ajouter et verrouiller les repères
|
||||
function addGuidesAndLock(doc, bleedPixels, safeZonePixels, width, height, addCenterGuides) {
|
||||
// Ajouter les repères
|
||||
var guides = [];
|
||||
|
||||
// Repères du fond perdu
|
||||
guides.push(addGuide(doc, 0, "V"));
|
||||
guides.push(addGuide(doc, width, "V"));
|
||||
guides.push(addGuide(doc, 0, "H"));
|
||||
guides.push(addGuide(doc, height, "H"));
|
||||
|
||||
// Repères des dimensions de base
|
||||
guides.push(addGuide(doc, bleedPixels, "V"));
|
||||
guides.push(addGuide(doc, width - bleedPixels, "V"));
|
||||
guides.push(addGuide(doc, bleedPixels, "H"));
|
||||
guides.push(addGuide(doc, height - bleedPixels, "H"));
|
||||
|
||||
// Repères de la zone de protection
|
||||
guides.push(addGuide(doc, bleedPixels + safeZonePixels, "V"));
|
||||
guides.push(addGuide(doc, width - bleedPixels - safeZonePixels, "V"));
|
||||
guides.push(addGuide(doc, bleedPixels + safeZonePixels, "H"));
|
||||
guides.push(addGuide(doc, height - bleedPixels - safeZonePixels, "H"));
|
||||
|
||||
|
||||
// Ajouter les repères centraux si activé
|
||||
|
||||
// Verrouiller les repères en verrouillant le document
|
||||
doc.guides.locked = true;
|
||||
doc.suspendHistory("Verrouillage des repères", function() {
|
||||
app.runMenuItem(stringIDToTypeID("lockGuides"));
|
||||
});
|
||||
|
||||
if (addCenterGuides) {
|
||||
guides.push(addGuide(doc, width / 2, "V"));
|
||||
guides.push(addGuide(doc, height / 2, "H"));
|
||||
}
|
||||
|
||||
// Verrouiller les repères
|
||||
doc.guides.locked = true;
|
||||
}
|
||||
|
||||
// Fonction pour ajouter un repère
|
||||
function addGuide(doc, position, orientation) {
|
||||
return doc.guides.add(orientation === "H" ? Direction.HORIZONTAL : Direction.VERTICAL, position);
|
||||
}
|
||||
|
||||
// Exécuter la fonction principale
|
||||
createBleed();
|
||||
Loading…
Reference in New Issue
Block a user