Bonjour & Bienvenue sur EOS-Numerique
Réseaux Sociaux : Follow us on Facebook Follow us on Twitter


Sign Up






Affichage des résultats 1 à 38 sur 38

Vue hybride

  1. #1
    Membre Avatar de beocien
    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

    Par défaut

    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:

  2. #2
    Membre Avatar de beocien
    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

    Par défaut

    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:

  3. #3
    Membre Avatar de beocien
    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

    Par défaut

    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

  1. Redresser une photo
    Par beber dans le forum Les Logiciels photo
    Réponses: 2
    Dernier message: 05/11/2007, 21h15
  2. redresser des photos prises au grand angle
    Par Gibson dans le forum Discussions générales
    Réponses: 3
    Dernier message: 02/05/2007, 12h08
  3. redresser une photo
    Par regis dans le forum Albums
    Réponses: 11
    Dernier message: 04/10/2005, 06h28
  4. redresser les fuyantes
    Par Bousco Luno dans le forum Présentations & règlements
    Réponses: 2
    Dernier message: 08/08/2005, 16h45

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Fuseau horaire GMT +1. Il est actuellement 07h13.
Powered by vBulletin® Version 4.2.5
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.
Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Auto Closing Of Threads provided by Threads Auto Close (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Copyright © Eos-numerique 2004-2025
vBulletin Skin By: PurevB.com