Affichage des résultats 1 à 38 sur 38
Discussion: Redresser et recadrer en javascript
Vue hybride
-
27/06/2008, 18h52 #1Membre
- Inscription
- décembre 2005
- Localisation
- Bayonne
- Âge
- 77
- Messages
- 5 675
- Boîtier
- 1DX
- Objectif(s)
- 16x35 2.8 II 17x40 70x200 f/2.8 100x400 ecran calibre TAMRON 150-600
J ai fait quelques progres en javascript .........
J ai beaucoup allege les precedents et supprime l utilisation du script .atn
Comme toujours il faut les mettre dans ....\Adobe Photoshop CS2\Paramètres prédéfinis\Scripts
et les appeler par un script .atn ( j utilise la touche F7 pour m en servir )
L un est identique aux precedents pour les proportions - SelectFixe.jsx
L autre preserve les proportions de l image d origine - RecadrageCrop.jsx
:blink:
-
28/06/2008, 19h56 #2Membre
- Inscription
- décembre 2005
- Localisation
- Bayonne
- Âge
- 77
- Messages
- 5 675
- Boîtier
- 1DX
- Objectif(s)
- 16x35 2.8 II 17x40 70x200 f/2.8 100x400 ecran calibre TAMRON 150-600
Et un petit dernier proportionnel et sans boites de dialogues qui utilise l outil trait :
RecadrageCropTrait.jsx
Je rajoute le code ici :
Code://REDRESSEMENT RECADRAGE avec PROPORTIONS utilisant l outil trait //J ai recupere la fonction qui permet de trouver l angle sur ps-cripts.com - une idee // de Patrick et Mike Hale dans ce topic : http://ps-scripts.com/bb/viewtopic.php?t=841 //Script realise sur https://www.eos-numerique.com/forums/newreply.php?do=newreply&p=653101 //par Beocien ( moi meme ) avec l aide de DomDom_one et Mac64 /* Ce script sert a redresser l image et a la recadrer Je l ai calibre a peu pres jusqu a un angle de 12° - sans garantie apres ! Mettre le script RecadrageCropTrait.jsx dans ....\Adobe Photoshop CS2\Paramètres prédéfinis\Scripts et l appeler au moyen d un script .atn MODE D EMPLOI : Utiliser l outil Trait - Maj U - ( cliquez sur l outil Rectangle en maintenant le click et choisir l Outil Trait ) et tracer un trait pour determiner l angle de recadrage. Mon adresse email = hallun@free.fr - Faites moi part des bugs !!! */ var strtRulerUnits = preferences.rulerUnits preferences.rulerUnits = Units.PIXELS //largeur et hauteur de l image docH = activeDocument.width docV = activeDocument.height // reference open document var docRef = app.activeDocument; // find the angle from the line using the line tool ( en utilisant l outil trait ) Angle = findAngle(); Erreur() Negatif() if (Angle>45) { Angle = 90 - Angle; } // straighten the image = redresse l image docRef.rotateCanvas(Angle); // remove the line used for measuring angle = on supprime le trait et on aplatit docRef.activeLayer.remove(); docRef.flatten() AngleRedresse() RecadreAngle() app.preferences.rulerUnits = startRulerUnits app.preferences.typeUnits = startTypeUnits app.displayDialogs = startDisplayDialogs function AngleRedresse() { // Taille du recadrage en fonction de l angle de redressement - de 0° a 14 if ( Angle <= 1 ) { Angle0 = Angle * 1.26; } else if ( Angle > 1, Angle <= 2 ) { Angle0 = Angle * 1.26; } else if ( Angle > 2, Angle <= 3 ) { Angle0 = Angle * 1.22; } else if ( Angle > 3, Angle <= 4 ) { Angle0 = Angle * 1.19; } else if ( Angle > 4, Angle <= 5 ) { Angle0 = Angle * 1.15; } else if ( Angle > 5, Angle <= 6 ) { Angle0 = Angle * 1.13; } else if ( Angle > 6, Angle <= 7 ) { Angle0 = Angle * 1.09; } else if ( Angle > 7, Angle <= 8 ) { Angle0 = Angle * 1.06; } else if ( Angle > 8, Angle <= 9 ) { Angle0 = Angle * 1.04; } else if ( Angle > 9, Angle <= 10 ) { Angle0 = Angle * 1.01; } else if ( Angle > 10, Angle <= 11 ) { Angle0 = Angle * 0.98; } else if ( Angle > 11, Angle <= 11.5 ) { Angle0 = Angle * 0.96; } else if ( Angle > 11.5, Angle <= 12 ) { Angle0 = Angle * 0.95; } else if ( Angle > 12, Angle <= 12.5 ) { Angle0 = Angle * 0.94; } else if ( Angle > 12.5, Angle <= 13 ) { Angle0 = Angle * 0.93; } else if ( Angle > 13, Angle <= 14 ) { Angle0 = Angle * 0.92; } else if ( Angle > 14 ) { alert ( " LE RESULTAT N EST PAS GARANTIT AU DESSUS D UN ANGLE DE 14 DEGRES !!!! " + "\n" + "\r" + "\r" + "\t" + " Vous devriez prendre le temps de CADRER CORRECTEMENT ??? " ); alert ( " IL VAUT MIEUX REFAIRE PLUSIEURS FOIS CE SCRIPT AVEC UN ANGLE INFERIEUR ! ") Angle0 = Angle * 0.73; } } function Virgule() //Enleve la virgule de l angle copie et met un point a la place { SousChaine = ","; Resultat = Angle.indexOf(SousChaine); if(Resultat==-1) { Angle = Angle if ( isNaN(Angle)==true ) { Angle = Window.prompt( 'ERREUR : ' + 'DONNER L ANGLE ' + "\n" + "\n" + "de 1 a 100 " ); Erreur() } } else { i = Resultat + 1; Resultat2 = Angle.substring(i, i+8) j = Resultat - 1; Resultat1 = Angle.substring(j+1, j - 8) Point = "." Angle = (Resultat1 + Point + Resultat2) if ( isNaN(Angle)==true ) { Angle = Window.prompt( 'ERREUR : ' + 'DONNER L ANGLE ' + "\n" + "\n" + "de 1 a 100 " ); Erreur() } } } function Erreur() // remplace le point la virgule de l angle par un point { if ( isNaN(Angle)==true ) { Virgule() } } function Negatif() //si l angle est negatif le remet en positif { if ( Angle < 0 ) { Angle = - Angle; } else { Angle = Angle; } } function RecadreAngle() { Angle1 = Angle0*docH/100 Angle2 = Angle0*docV/100 LEFT = Angle1 TOP = Angle2 docRef.resizeCanvas( docH - 2*LEFT,docV - 2*TOP) docRef.trim(TrimType.TOPLEFT, true, false, true, false) } function findAngle(){ var lineStart = activeDocument.pathItems[0].subPathItems[0].pathPoints[0].anchor; var lineEnd = activeDocument.pathItems[0].subPathItems[0].pathPoints[3].anchor; var a = Math.abs(lineStart[0]-lineEnd[0]); var o = Math.abs(lineStart[1]-lineEnd[1]); var c = (180/Math.PI) * Math.atan2(o,a); if(lineStart[1] < lineEnd[1]){//negative angle c = -c; }; return c; };
:blink:
-
02/07/2016, 21h36 #3Membre
- Inscription
- décembre 2005
- Localisation
- Bayonne
- Âge
- 77
- Messages
- 5 675
- Boîtier
- 1DX
- Objectif(s)
- 16x35 2.8 II 17x40 70x200 f/2.8 100x400 ecran calibre TAMRON 150-600
Hum..........
Une relance un peu tardive:
Plus besoin de copier/coller l angle mesure !
Code://REDRESSEMENT RECADRAGE sans PROPORTIONS //Script realise sur https://www.eos-numerique.com/forums/newreply.php?do=newreply&p=653101 //par Beocien ( moi meme ) avec l aide de DomDom_one et Mac64 /* Ce script sert a redresser l image et a la recadrer Je l ai calibre a peu pres jusqu a un angle de 11° - sans garantie apres ! Mettre MesureRecadrage.jsx dans ....\Adobe Photoshop CS2\Paramètres prédéfinis\Scripts MODE D EMPLOI : Utiliser d abord l outil mesure ( cliquez sur l outil pipette en maintenant le click et choisir l Outil Mesure ) pour determiner l angle de recadrage. Faites OK. Mon adresse email = hallun@free.fr - Faites moi part des bugs !!! */ var strtRulerUnits = preferences.rulerUnits preferences.rulerUnits = Units.PIXELS preferences.rulerUnits = Units.CM //Je cree un calque pour etre sur d aplatir les cadres existants eventuels : var docRef = app.activeDocument; var layerRef1 = docRef.artLayers.add(); docRef.flatten(); //aplatir les calques //DonnerAngle() var myState = app.activeDocument.activeHistoryState; // id201 donne l angle de l instrument mesure ! // ======================================================= var id199 = charIDToTypeID( "Rtte" ); var desc55 = new ActionDescriptor(); var id200 = charIDToTypeID( "null" ); var ref11 = new ActionReference(); var id201 = charIDToTypeID( "Dcmn" ); var id202 = charIDToTypeID( "Ordn" ); var id203 = charIDToTypeID( "Frst" ); ref11.putEnumerated( id201, id202, id203 ); desc55.putReference( id200, ref11 ); var id204 = charIDToTypeID( "Angl" ); var id205 = charIDToTypeID( "#Ang" ); desc55.putUnitDouble(id201, id204, id205 ); // desc2.putUnitDouble( idAngl, idAng, 4.390000 ); //executeAction( id199, desc55, DialogModes.NO ); var debutAngle = executeAction( id199, desc55, DialogModes.NO ); Angle = debutAngle.getDouble(charIDToTypeID("Angl")); Angle = parseFloat(Angle); //executeAction( id199, desc55, DialogModes.NO ); //alert(Angle) //app.activeDocument.activeHistoryState = myState; //retour a l historique precedent //sans appliquer la rotation executeAction( id199, desc55, DialogModes.NO ); //commence la selection var id248 = charIDToTypeID( "setd" ); var desc51 = new ActionDescriptor(); var id249 = charIDToTypeID( "null" ); var ref23 = new ActionReference(); var id250 = charIDToTypeID( "Chnl" ); var id251 = charIDToTypeID( "fsel" ); ref23.putProperty( id250, id251 ); desc51.putReference( id249, ref23 ); var id252 = charIDToTypeID( "T " ); var desc52 = new ActionDescriptor(); var id253 = charIDToTypeID( "Top " ); var id254 = charIDToTypeID( "#Prc" ); Negatif() function Negatif() { //valeur negative : if ( Angle < 0 ) { Angle = - Angle; } else { Angle = Angle; } } AngleRedresse() function AngleRedresse() { if ( Angle <= 1 ) { TOP = ( Angle * 3.00); LEFT = (Angle * 1.2); } else if ( Angle > 1, Angle <= 2 ) { TOP = ( Angle * 2.55); LEFT = (Angle * 1.1); } else if ( Angle > 2, Angle <= 3 ) { TOP = (Angle * 2.45); LEFT = (Angle * 1.08); } else if ( Angle > 3, Angle <= 4 ) { TOP = (Angle * 2.36); LEFT = (Angle * 1.05); } else if ( Angle > 4, Angle <= 5 ) { TOP = ( Angle * 2.33); LEFT = (Angle * 1.); } else if ( Angle > 5, Angle <= 6 ) { TOP = (Angle * 2.26); LEFT = (Angle * 0.96); } else if ( Angle > 6, Angle <= 7 ) { TOP = ( Angle * 2.17); LEFT = (Angle * 0.93); } else if ( Angle > 7, Angle <= 8 ) { TOP = ( Angle * 2.06); LEFT = (Angle * 0.90); } else if ( Angle > 8, Angle <= 9 ) { TOP = ( Angle * 2.01); LEFT = (Angle * 0.87); } else if ( Angle > 9, Angle <= 9.5 ) { TOP = (Angle * 1.96); LEFT = (Angle * 0.83); } else if ( Angle > 9.5, Angle <= 10 ) { TOP = (Angle * 1.92); LEFT = (Angle * 0.815); } else if ( Angle > 10, Angle <= 10.5 ) { TOP = (Angle * 1.90); LEFT = (Angle * 0.80); } else if ( Angle > 10.5, Angle <= 11 ) { TOP = ( Angle * 1.88); LEFT = (Angle * 0.785); } else if ( Angle > 11, Angle <= 11.5 ) { TOP = ( Angle * 1.86); LEFT = (Angle * 0.77); } else if ( Angle > 11.5, Angle <= 12 ) { TOP = (Angle * 1.83); LEFT = (Angle * 0.755); } else if ( Angle > 12, Angle <= 12.5 ) { TOP = (Angle * 1.81); LEFT = (Angle * 0.74); } else if ( Angle > 12.5, Angle <= 13 ) { TOP = ( Angle * 1.79); LEFT = (Angle * 0.725); } else if ( Angle > 13, Angle <= 13.5 ) { TOP = ( Angle * 1.77); LEFT = (Angle * 0.708); } else if ( Angle > 13.5, Angle <= 14 ) { TOP = ( Angle * 1.74); LEFT = (Angle * 0.695); } else if ( Angle > 14 ) { alert ( " LE RESULTAT N EST PAS GARANTIT AU DESSUS D UN ANGLE DE 14 DEGRES !!!! " + "\n" + "\r" + "\r" + "\t" + " Vous devriez prendre le temps de CADRER CORRECTEMENT ??? " ); TOP = ( Angle * 1.72); LEFT = (Angle * 0.680); } } //TOP = parseInt( TOP ); //LEFT = parseInt(LEFT ); PortPays(); function PortPays() { //******************************************************************************************* // si l image est en PAYSAGE : if ( app.activeDocument.width / app.activeDocument.height > 1 ) { BOTTOM = 100 - TOP ; RIGHT = 100 - LEFT; TOPS = TOP; LEFTS = LEFT; RIGHTS = RIGHT; BOTTOMS = BOTTOM; } else { BOTTOM = 100 - TOP ; RIGHT = 100 - LEFT; TOPS = LEFT; LEFTS = TOP; RIGHTS = BOTTOM; BOTTOMS = RIGHT; } } //alert(TOPS); Selection() function Selection() { // Creation de la selection ( Prc = % a la place de Pxl ) qui se fait en pourcentage //alert(TOPS); desc52.putUnitDouble( id253, id254, TOPS ); var id255 = charIDToTypeID( "Left" ); var id256 = charIDToTypeID( "#Prc" ); desc52.putUnitDouble( id255, id256, LEFTS ); var id257 = charIDToTypeID( "Btom" ); var id258 = charIDToTypeID( "#Prc" ); desc52.putUnitDouble( id257, id258, BOTTOMS ); var id259 = charIDToTypeID( "Rght" ); var id260 = charIDToTypeID( "#Prc" ); desc52.putUnitDouble( id259, id260, RIGHTS ); var id261 = charIDToTypeID( "Rctn" ); desc51.putObject( id252, id261, desc52 ); executeAction( id248, desc51, DialogModes.NO ); // ======================================================= //ROGNER les pixels trensparents sur la copie de la selection var id910 = charIDToTypeID( "CpTL" ); executeAction( id910, undefined, DialogModes.NO ); // ======================================================= var id911 = charIDToTypeID( "Hd " ); var desc213 = new ActionDescriptor(); var id912 = charIDToTypeID( "null" ); var list16 = new ActionList(); var ref191 = new ActionReference(); var id913 = charIDToTypeID( "Lyr " ); var id914 = charIDToTypeID( "Bckg" ); ref191.putProperty( id913, id914 ); list16.putReference( ref191 ); desc213.putList( id912, list16 ); executeAction( id911, desc213, DialogModes.NO ); // ======================================================= var id915 = stringIDToTypeID( "trim" ); var desc214 = new ActionDescriptor(); var id916 = stringIDToTypeID( "trimBasedOn" ); var id917 = stringIDToTypeID( "trimBasedOn" ); var id918 = charIDToTypeID( "Trns" ); desc214.putEnumerated( id916, id917, id918 ); var id919 = charIDToTypeID( "Top " ); desc214.putBoolean( id919, true ); var id920 = charIDToTypeID( "Btom" ); desc214.putBoolean( id920, true ); var id921 = charIDToTypeID( "Left" ); desc214.putBoolean( id921, true ); var id922 = charIDToTypeID( "Rght" ); desc214.putBoolean( id922, true ); executeAction( id915, desc214, DialogModes.NO ); } docRef.flatten(); //aplatir les calques zoom0() function zoom0() { var id57 = charIDToTypeID( "slct" ); var desc15 = new ActionDescriptor(); var id58 = charIDToTypeID( "null" ); var ref6 = new ActionReference(); var id59 = charIDToTypeID( "Mn " ); var id60 = charIDToTypeID( "MnIt" ); var id61 = charIDToTypeID( "FtOn" ); ref6.putEnumerated( id59, id60, id61 ); desc15.putReference( id58, ref6 ); executeAction( id57, desc15, DialogModes.NO ); }
Informations de la discussion
Utilisateur(s) sur cette discussion
Il y a actuellement 1 utilisateur(s) naviguant sur cette discussion. (0 utilisateur(s) et 1 invité(s))
Discussions similaires
-
Redresser une photo
Par beber dans le forum Les Logiciels photoRéponses: 2Dernier message: 05/11/2007, 21h15 -
redresser des photos prises au grand angle
Par Gibson dans le forum Discussions généralesRéponses: 3Dernier message: 02/05/2007, 12h08 -
redresser une photo
Par regis dans le forum AlbumsRéponses: 11Dernier message: 04/10/2005, 06h28 -
redresser les fuyantes
Par Bousco Luno dans le forum Présentations & règlementsRéponses: 2Dernier message: 08/08/2005, 16h45





