+ Antworten
Ergebnis 1 bis 10 von 10

Thema: Stapel / Bilder nur bei Bedarf verkleinern

  1. #1
    x42
    x42 ist offline
    TP-Junior x42 macht alles soweit korrekt
    Registriert seit
    Oct 2007
    Beiträge
    9

    Stapel / Bilder nur bei Bedarf verkleinern

    Hallo Community

    habe folgendes Problem in Photoshop CS (CS2 wäre zur Not auch Verfügbar) :
    Ich habe eine Reihe Bilder. Diese muessen in ein bestimmtes Format (Pixelgrösse). Soweit so gut. Was ich nicht hinbekomme:

    Ich möchte die Bilder nur verkleinern falls sie ueber eine bestimmte Größe gehen, der rest soll nicht vergrößert werden. Mit Bild einpassen oder Bildgröße kann ich zwar eine Größe einstellen aber die kleineren Bilder werden eben vergrößert. Ich bilde mir ein mal eine Funktion gesehen zu habe in der ein Häckchen zu machen war bei "Bilder nur verkleinern" oder so ähnlich. Träume ich oder gibt es diese option nicht ?

    MfG
    X42
    Geändert von x42 (09.10.2007 um 14:01 Uhr)

  2. #2
    x42
    x42 ist offline
    TP-Junior x42 macht alles soweit korrekt
    Registriert seit
    Oct 2007
    Beiträge
    9
    mh.. hab die funktion eben gefunden - leider in image ready. wenn jmd eine möglichkeit kennt den oben beschriebenen weg in photoshop zu gehen - please let me know
    ich brauch das übrigens beruflich, nicht nur mal eben für nen stapel urlaubsbilder. daher ist auch image ready keine option, da ich nicht davon ausgehen kann dass alle personen die es nutzen werden image ready auf dem rechner haben.
    Geändert von x42 (09.10.2007 um 16:01 Uhr)

  3. #3
    x42
    x42 ist offline
    TP-Junior x42 macht alles soweit korrekt
    Registriert seit
    Oct 2007
    Beiträge
    9
    ok, hat sich erledigt - haben nun eine andere ausgangsgröße der fotos festgelegt, sodass das problem auf andere art gelöst wird

    one-man-thread kann geschlossen oder gelöscht werden enthält ja keine wertvollen infos.... auch die lösung
    des problems werde ich nicht posten, da zu komplex, zu speziell und nicht übertragbar auf andere problemlösungen ist.
    bzw habe ich sie ja in kurzform gepostet...

  4. #4
    TP-Moderator Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Avatar von Nightline
    Registriert seit
    Jan 2003
    Ort
    Wien
    Beiträge
    4.127
    Da bist du mir zuvor gekommen. Das Problem lässt sich nur mit einem Script lösen, das als Schritt in der Aktion übernommen wird. Aber da ich bisher keine Zeit hatte, das daheim nachzuschauen, konnte ich dir auch nicht antworten.
    +lg Nightline
    -------------------------
    Fotoportfolio: http://www.coeser.de/showcase/
    Städte-Fotos aus aller Welt: http://www.coeser.de/impressions/
    DeviantArt-Account: http://nightline.deviantart.com

  5. #5
    x42
    x42 ist offline
    TP-Junior x42 macht alles soweit korrekt
    Registriert seit
    Oct 2007
    Beiträge
    9
    mhh.. also das problem haben wir ja schon gelöst, aber das mit dem skript einbauen würde mich so generell trotzdem mal interressieren.
    also wenn du mal zeit findest das nachzuschauen und hier postest wär super und der thread wär nicht wertlos

    grüße, x42

  6. #6
    TP-Moderator Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Avatar von Nightline
    Registriert seit
    Jan 2003
    Ort
    Wien
    Beiträge
    4.127
    Mach ich am Wochenende, versprochen.
    +lg Nightline
    -------------------------
    Fotoportfolio: http://www.coeser.de/showcase/
    Städte-Fotos aus aller Welt: http://www.coeser.de/impressions/
    DeviantArt-Account: http://nightline.deviantart.com

  7. #7
    TP-Senior hotschen bringt sich richtig ein hotschen bringt sich richtig ein
    Registriert seit
    Feb 2002
    Beiträge
    141
    Will ich dir mal ein wenig Arbeit abnehmen . Wollte eh schon immer mal ein GUI für mein Resize-Script basteln.

    Wäre schön, wenn ihr ein wenig Fedback geben könntet, konnte es nur unter CS testen.

    !!!!!Sollten die Dateien im Zielordner schon vorhanden sein, werden sie überschrieben. (bei Gelegenheit mal abändern)

    PHP-Code:
    function main()    {
        var 
    filterAr = new Array ('tif','jpg','psd','png','gif');
        var 
    source=new Folder (dlg.pan_folder.txt_qellpfad.text);
        var 
    allFiles=source.getFiles();
        var 
    imageFiles = new Array;
        for (var 
    0allFiles.lengthi++)  { 
            if (
    allFiles[i] instanceof Folder) continue; 
            var 
    dotPos allFiles[i].name.lastIndexOf"." ); 
            if (
    dotPos 1) continue; 
            var 
    process false
            
    fExtLc allFiles[i].name.substring(dotPos+1).toLowerCase(); 
            for (var 
    0filterAr.lengthy++) 
            { 
            
    process =(filterAr[y] == fExtLc); 
            if (
    process == true) break; 
            } 
            if (
    process == false) continue; 
            
    imageFiles.push(allFiles[i]); 
          }
        
        for (var 
    i=0i<imageFiles.length;i++)    {
            
    dlg.info2.text="laden...";
            
    dlg.info.text="Bild "+(i+1)+"/"imageFiles.length;
            var 
    docref=app.open(imageFiles[i]);
            
    dlg.info2.text="resize...";
            
    resizeDoc (docref,dlg.pan_opt.txt_breite.text*1,dlg.pan_opt.txt_hoehe.text*1);
            
    dlg.info2.text="speichern...";
            if (
    dlg.pan_opt.pan_save.rb_psd.value==true) {
                
    save_PSD(docref);
            }    else {
                
    save_JPG(docref);
             }
             
    docref.close(SaveOptions.DONOTSAVECHANGES);
          }
        
    dlg.info2.text="Fertig!";
    }

    function 
    resizeDoc(doc,toX,toY)    {
    //    nur verkleinern
        
    if (dlg.pan_opt.rb_small.value==true)    {
            if (
    doc.width>toX || doc.height>toY)    {
                if (
    doc.width/toX doc.height/toY)    {
                    
    doc.resizeImage(toX,undefinedundefinedResampleMethod.BICUBIC);
                }    else    {
                    
    doc.resizeImage(undefined,toYundefinedResampleMethod.BICUBIC);
                }    
            }
        }
        
    //     nur vergrössern    
        
    if (dlg.pan_opt.rb_big.value==true)        {
            if (
    doc.width<toX || doc.height<toY)    {
                if (
    doc.width/toX doc.height/toY)    {
                    
    doc.resizeImage(toX,undefinedundefinedResampleMethod.BICUBIC);
                }    else    {
                    
    doc.resizeImage(undefined,toYundefinedResampleMethod.BICUBIC);
                }    
            }        
        }
        
    //    beides
        
    if (dlg.pan_opt.rb_both.value==true)    {
            if (
    doc.width/toX doc.height/toY)    {
                
    doc.resizeImage(toX,undefinedundefinedResampleMethod.BICUBIC);
            }    else    {
                
    doc.resizeImage(undefined,toYundefinedResampleMethod.BICUBIC);
            }            
        }
            
    }

    function 
    save_JPG(doc)    {
        if(
    doc.mode != "RGB"doc.changeMode(ChangeMode.RGB);
        
    saveOptions = new JPEGSaveOptions(); 
        
    saveOptions.embedColorProfile true
        
    saveOptions.formatOptions FormatOptions.STANDARDBASELINE
        
    saveOptions.matte MatteType.NONE
        
    saveOptions.quality dlg.pan_opt.pan_save.txt_qualitaet.text;
        var 
    saveFile = new File(dlg.pan_folder.txt_zielpfad.text+doc.name);
        
    doc.saveAs(saveFile,saveOptions);
    }

    function 
    save_PSD(doc)    {
        if(
    doc.mode != "RGB"doc.changeMode(ChangeMode.RGB);
        
    psdSaveOptions = new PhotoshopSaveOptions(); 
        
    psdSaveOptions.embedColorProfile true
        
    psdSaveOptions.alphaChannels true;  
    //     app.activeDocument.saveAs(saveFile, psdSaveOptions, true, Extension.LOWERCASE);
        
    saveFile =  new File(dlg.pan_folder.txt_zielpfad.text decodeURI(doc.name).slice(0,-4) + ".psd");
        
    doc.saveAs(saveFilepsdSaveOptionstrueExtension.LOWERCASE);    
    }


    //Variablen
    var strtRulerUnits app.preferences.rulerUnits;
    app.preferences.rulerUnits Units.PIXELS;

    var 
    inputFolder;
    var 
    outputFolder;

    //GUI
    var res="dialog{text:'Resize by hotschen',bounds:[100,100,460,370],\
            pan_folder:Panel{bounds:[10,10,350,95] , text:'Ordnerauswahl ' ,properties:{borderStyle:'etched',su1PanelCoordinates:true},\
                statictext0:StaticText{bounds:[10,22,70,39] , text:'Quellpfad:' ,properties:{scrolling:undefined,multiline:false}},\
                statictext1:StaticText{bounds:[10,52,60,69] , text:'Zielpfad:' ,properties:{scrolling:undefined,multiline:false}},\
                txt_qellpfad:EditText{bounds:[70,20,290,40] , text:'' ,properties:{multiline:false,noecho:false,readonly:false}},\
                btn_quellpfad:Button{bounds:[300,20,330,40] , text:'...' },\
                btn_zielpfad:Button{bounds:[300,50,330,70] , text:'...' },\
                txt_zielpfad:EditText{bounds:[70,50,290,70] , text:'' ,properties:{multiline:false,noecho:false,readonly:false}}\
            },\
            pan_opt:Panel{bounds:[10,110,350,230] , text:'Einstellungen ' ,properties:{borderStyle:'etched',su1PanelCoordinates:true},\
                rb_small:RadioButton{bounds:[10,50,111,71] , text:'Nur verkleinern',value:true },\
                rb_big:RadioButton{bounds:[10,70,111,91] , text:'Nur vergrössern' },\
                rb_both:RadioButton{bounds:[10,90,190,111] , text:'Vergrössern und verkleinern' },\
                statictext3:StaticText{bounds:[10,22,70,42] , text:'Zielgrösse:' ,properties:{scrolling:undefined,multiline:false}},\
                txt_breite:EditText{bounds:[70,20,110,40] , text:'800' ,properties:{multiline:false,noecho:false,readonly:false}},\
                statictext4:StaticText{bounds:[111,22,121,39] , text:'x' ,properties:{scrolling:undefined,multiline:false}},\
                txt_hoehe:EditText{bounds:[120,20,160,40] , text:'600' ,properties:{multiline:false,noecho:false,readonly:false}},\
                statictext5:StaticText{bounds:[160,20,180,37] , text:'px' ,properties:{scrolling:undefined,multiline:false}},\
                pan_save:Panel{bounds:[200,10,330,111] , text:'Speicheroptionen' ,properties:{borderStyle:'etched',su1PanelCoordinates:true},\
                    rb_psd:RadioButton{bounds:[20,20,121,41] , text:'PSD', value:true },\
                    rb_jpg:RadioButton{bounds:[20,40,121,61] , text:'JPG' },\
                    slider:Slider{bounds:[20,80,121,90] , minvalue:1,maxvalue:12,value:10,visible:false},\
                    statictext9:StaticText{bounds:[20,62,70,79] , text:'Qualität' ,visible:false,properties:{scrolling:undefined,multiline:false}},\
                    txt_qualitaet:EditText{bounds:[80,60,110,80] , text:'10' ,visible:false,properties:{multiline:false,noecho:false,readonly:false}}\
                }\
            },\
            info:StaticText{bounds:[20,232,120,250] , text:'' ,properties:{scrolling:undefined,multiline:false}},\
            info2:StaticText{bounds:[20,252,120,270] , text:'' ,properties:{scrolling:undefined,multiline:false}},\
            btn_ok:Button{bounds:[130,240,230,260] , text:'Los gehts' },\
            btn_cancel:Button{bounds:[250,240,350,260] , text:'Abbrechen' }\
    };"


    //GUI-Funktionen
    var dlg=new Window (res);
    dlg.btn_ok.onClick=function()    {
        
    main();
    };
    dlg.btn_cancel.onClick =function () { 
         
    app.preferences.rulerUnits strtRulerUnits;
        
    this.parent.close(2);
    };
    dlg.pan_folder.btn_quellpfad.onClick=function()    {
        
    inputFolderFolder.selectDialog("Quellverzeichnis auswählen");
        
    dlg.pan_folder.txt_qellpfad.text inputFolder.toString()+"/";
    };
    dlg.pan_folder.btn_zielpfad.onClick=function()    {
        
    outputFolderFolder.selectDialog("Zielverzeichnis auswählen").toString();
        
    dlg.pan_folder.txt_zielpfad.text outputFolder.toString()+"/";
    };
    dlg.pan_opt.pan_save.slider.onChange=function()    {
        
    dlg.pan_opt.pan_save.txt_qualitaet.text=this.value;
    }
    dlg.pan_opt.pan_save.rb_jpg.onClick=function()    {
        
    dlg.pan_opt.pan_save.txt_qualitaet.visible=this.value;
        
    dlg.pan_opt.pan_save.slider.visible=this.value;
        
    dlg.pan_opt.pan_save.statictext9.visible=this.value;
    }
    dlg.pan_opt.pan_save.rb_psd.onClick=function()    {
        
    dlg.pan_opt.pan_save.txt_qualitaet.visible=!this.value;
        
    dlg.pan_opt.pan_save.slider.visible=!this.value;
        
    dlg.pan_opt.pan_save.statictext9.visible=!this.value;
    }
    dlg.center();
    dlg.show(); 
    Gruß hotschen

  8. #8
    x42
    x42 ist offline
    TP-Junior x42 macht alles soweit korrekt
    Registriert seit
    Oct 2007
    Beiträge
    9
    hey, super....
    sieht ja schon bissl komplizierter aus (bin kein programmierer, bei javascript hoerts bei mir auf ) werde mir das am Montag oder am Woende mal zu Gemüte führen. Ich denke das kann man wohl für mehrere Arbeitsabläufe sehr gut verwenden.

    also danke schonmal, werde sicher noch ein paar fragen dazu haben...

    in diesem Sinne :
    ein schönes Wochenende

  9. #9
    TP-Moderator Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Nightline ist ein richtiges Arbeitstier - DANKE Avatar von Nightline
    Registriert seit
    Jan 2003
    Ort
    Wien
    Beiträge
    4.127
    Hallo Leute,

    hier nun auch mein versprochener Beitrag. Ist eine Variante, die ich selber verwende, daher ist sie nicht gegen allerhand mögliche Fehlerquellen geschützt wie das Script von hotschen. Übrigens, super Beispiel zum Lernen!


    Was macht das Script?

    Zuerst mal müssen im Script selbst der gewünschte Dateiname, die Maße für die verkleinerten Bilder und die Speicheroptionen angegeben werden. Geht eben alles leider manuell und nicht über ein Dialogfeld bei mir.

    1.) Über "Datei - Skripten - Durchsuchen ..." die *.jsx-Datei laden
    2.) Den Ordner mit den zu verkleinernden Bildern angeben
    3.) Je nach Ausrichtung werden die Bilder verkleinert und im selben Ordner als neue Datei exportiert.

    PHP-Code:
    displayDialogs DialogModes.NO;

    ordner Folder.selectDialog("");
    alles ordner.getFiles();
    Folder.current ordner;

    DATEINAME "wien_2007";

    for(
    i=0i<alles.length;i++) {

    open(alles[i]);

    if (
    activeDocument.width.value activeDocument.height.value) {
    activeDocument.resizeImage(800undefined72ResampleMethod.BICUBIC);
    }
    else
    {
    activeDocument.resizeImage(undefined80072ResampleMethod.BICUBIC);
    }

    activeDocument.activeLayer.applyUnSharpMask(2010);
    activeDocument.activeLayer.applySharpen();

    nam ordner "/" DATEINAME "_" + (i+1) + ".jpg";
    neuedatei = new File(nam);
    Optionen = new ExportOptionsSaveForWeb;
    Optionen.format SaveDocumentType.JPEG;
    Optionen.quality 70;
    Optionen.optimized true;
    activeDocument.exportDocument(neuedateiExportType.SAVEFORWEBOptionen);
    activeDocument.close(SaveOptions.DONOTSAVECHANGES);

    +lg Nightline
    -------------------------
    Fotoportfolio: http://www.coeser.de/showcase/
    Städte-Fotos aus aller Welt: http://www.coeser.de/impressions/
    DeviantArt-Account: http://nightline.deviantart.com

  10. #10
    x42
    x42 ist offline
    TP-Junior x42 macht alles soweit korrekt
    Registriert seit
    Oct 2007
    Beiträge
    9
    super, danke euch beiden! hoffe ich komme die woche dazu es mal auszuprobieren, is grad bissl hektisch bei uns.

    hätte noch ne andere frage:

    ich möchte eine hilfslinie immer 200px unter eine von hand gesetzte hilfslinie ziehen, das ganze am besten ueber eine mini-aktion, sodass es immer der gleiche abstand ist.
    also: horizonzale hilfsline per hand gezogen, dann auf aktion klicken und eine hilfsline 200px darunter erscheint, an der das bild dann beschnitten wird.
    habe im photoshop nix dazu gefunden. muss das wieder ueber ein skript passieren ? wie koennte das in etwas aussehen ?

    VG,
    x42

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51