PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Bildbearbeitung (2D), Vektor- & Layoutbearbeitung
Photoshop
Rahmen wie bei Instagram (automatisiert) erstellen
Beitrag
<blockquote data-quote="pixxxelschubser" data-source="post: 2461934" data-attributes="member: 167287"><p>???</p><p>Da sind wir grad ein bisschen verschiedener Meinung.</p><p></p><p>Für solche Kleinigkeiten reicht ein ausgelesener AM-Code vollkommen aus. Und ob der narrensicher ist oder nicht, das ist eher egal. Und einen solchen Code kann man problemlos veröffentlichen.</p><p>Hier einmal voll funktionsfähig mit transparentem Rahmen (sind knapp 100 Zeilen, da ohne jegliche manuelle Nachbearbeitung):</p><p>[code=JavaScript]var idsetd = charIDToTypeID( "setd" );</p><p> var desc1 = new ActionDescriptor();</p><p> var idnull = charIDToTypeID( "null" );</p><p> var ref1 = new ActionReference();</p><p> var idLyr = charIDToTypeID( "Lyr " );</p><p> var idBckg = charIDToTypeID( "Bckg" );</p><p> ref1.putProperty( idLyr, idBckg );</p><p> desc1.putReference( idnull, ref1 );</p><p> var idT = charIDToTypeID( "T " );</p><p> var desc2 = new ActionDescriptor();</p><p> var idOpct = charIDToTypeID( "Opct" );</p><p> var idPrc = charIDToTypeID( "#Prc" );</p><p> desc2.putUnitDouble( idOpct, idPrc, 100.000000 );</p><p> var idMd = charIDToTypeID( "Md " );</p><p> var idBlnM = charIDToTypeID( "BlnM" );</p><p> var idNrml = charIDToTypeID( "Nrml" );</p><p> desc2.putEnumerated( idMd, idBlnM, idNrml );</p><p> var idLyr = charIDToTypeID( "Lyr " );</p><p> desc1.putObject( idT, idLyr, desc2 );</p><p>executeAction( idsetd, desc1, DialogModes.NO );</p><p>var idsetd = charIDToTypeID( "setd" );</p><p> var desc3 = new ActionDescriptor();</p><p> var idnull = charIDToTypeID( "null" );</p><p> var ref2 = new ActionReference();</p><p> var idPath = charIDToTypeID( "Path" );</p><p> var idWrPt = charIDToTypeID( "WrPt" );</p><p> ref2.putProperty( idPath, idWrPt );</p><p> desc3.putReference( idnull, ref2 );</p><p> var idT = charIDToTypeID( "T " );</p><p> var desc4 = new ActionDescriptor();</p><p> var idTop = charIDToTypeID( "Top " );</p><p> var idPrc = charIDToTypeID( "#Prc" );</p><p> desc4.putUnitDouble( idTop, idPrc, 0.000000 );</p><p> var idLeft = charIDToTypeID( "Left" );</p><p> var idPrc = charIDToTypeID( "#Prc" );</p><p> desc4.putUnitDouble( idLeft, idPrc, 0.000000 );</p><p> var idBtom = charIDToTypeID( "Btom" );</p><p> var idPrc = charIDToTypeID( "#Prc" );</p><p> desc4.putUnitDouble( idBtom, idPrc, 100.000000 );</p><p> var idRght = charIDToTypeID( "Rght" );</p><p> var idPrc = charIDToTypeID( "#Prc" );</p><p> desc4.putUnitDouble( idRght, idPrc, 100.000000 );</p><p> var idRds = charIDToTypeID( "Rds " );</p><p> var idPxl = charIDToTypeID( "#Pxl" );</p><p> desc4.putUnitDouble( idRds, idPxl, 30.000000 );</p><p> var idRctn = charIDToTypeID( "Rctn" );</p><p> desc3.putObject( idT, idRctn, desc4 );</p><p>executeAction( idsetd, desc3, DialogModes.NO );</p><p>var idCnvS = charIDToTypeID( "CnvS" );</p><p> var desc5 = new ActionDescriptor();</p><p> var idRltv = charIDToTypeID( "Rltv" );</p><p> desc5.putBoolean( idRltv, true );</p><p> var idWdth = charIDToTypeID( "Wdth" );</p><p> var idPxl = charIDToTypeID( "#Pxl" );</p><p> desc5.putUnitDouble( idWdth, idPxl, 40.000000 );</p><p> var idHght = charIDToTypeID( "Hght" );</p><p> var idPxl = charIDToTypeID( "#Pxl" );</p><p> desc5.putUnitDouble( idHght, idPxl, 40.000000 );</p><p> var idHrzn = charIDToTypeID( "Hrzn" );</p><p> var idHrzL = charIDToTypeID( "HrzL" );</p><p> var idCntr = charIDToTypeID( "Cntr" );</p><p> desc5.putEnumerated( idHrzn, idHrzL, idCntr );</p><p> var idVrtc = charIDToTypeID( "Vrtc" );</p><p> var idVrtL = charIDToTypeID( "VrtL" );</p><p> var idCntr = charIDToTypeID( "Cntr" );</p><p> desc5.putEnumerated( idVrtc, idVrtL, idCntr );</p><p>executeAction( idCnvS, desc5, DialogModes.NO );</p><p>var idsetd = charIDToTypeID( "setd" );</p><p> var desc6 = new ActionDescriptor();</p><p> var idnull = charIDToTypeID( "null" );</p><p> var ref3 = new ActionReference();</p><p> var idChnl = charIDToTypeID( "Chnl" );</p><p> var idfsel = charIDToTypeID( "fsel" );</p><p> ref3.putProperty( idChnl, idfsel );</p><p> desc6.putReference( idnull, ref3 );</p><p> var idT = charIDToTypeID( "T " );</p><p> var ref4 = new ActionReference();</p><p> var idPath = charIDToTypeID( "Path" );</p><p> var idWrPt = charIDToTypeID( "WrPt" );</p><p> ref4.putProperty( idPath, idWrPt );</p><p> desc6.putReference( idT, ref4 );</p><p> var idVrsn = charIDToTypeID( "Vrsn" );</p><p> desc6.putInteger( idVrsn, 1 );</p><p> var idvectorMaskParams = stringIDToTypeID( "vectorMaskParams" );</p><p> desc6.putBoolean( idvectorMaskParams, true );</p><p>executeAction( idsetd, desc6, DialogModes.NO );</p><p>var idInvs = charIDToTypeID( "Invs" );</p><p>executeAction( idInvs, undefined, DialogModes.NO );</p><p>var idDlt = charIDToTypeID( "Dlt " );</p><p> var desc7 = new ActionDescriptor();</p><p> var idnull = charIDToTypeID( "null" );</p><p> var ref5 = new ActionReference();</p><p> var idPath = charIDToTypeID( "Path" );</p><p> var idWrPt = charIDToTypeID( "WrPt" );</p><p> ref5.putProperty( idPath, idWrPt );</p><p> desc7.putReference( idnull, ref5 );</p><p>executeAction( idDlt, desc7, DialogModes.NO );</p><p>var idcut = charIDToTypeID( "cut " );</p><p>executeAction( idcut, undefined, DialogModes.NO );[/code]</p><p></p><p>Und falls man das Ganze als ExtendScript - Javascript - AM-Code - Mix erstellt, dann reichen zusammengefasst schon mal 20 Zeilen (wenn man die Kommentarzeilen aussen vorlässt). und wer will (und kann), der darf sich gerne selbst noch ein paar sinnvolle Routinen zum Fehlerabfangen einbauen:</p><p>[code=JavaScript]// RoundedFrame2.jsx</p><p>// http://www.psd-tutorials.de/forum/threads/rahmen-wie-bei-instagram-automatisiert-erstellen.166291/</p><p>// erstellt abgerundete (transparente) Rahmen</p><p>// regards pixxxelschubser</p><p>var aDoc = app.activeDocument; app.preferences.rulerUnits = Units.PIXELS;</p><p>var aLay = aDoc.activeLayer; aLay.isBackgroundLayer = false;</p><p>var abst = Number(prompt("Rahmenbreite in Pixeln festlegen:", 40, "Rahmenbreite"));</p><p>var rad = Number(prompt("Radius in Pixeln festlegen:", 30, "Rahmenbreite"));</p><p>var totalH = aDoc.height.as("PIXELS"), totalW = aDoc.width.as("PIXELS");</p><p>var desc0 = new ActionDescriptor();</p><p>var ref = new ActionReference(); ref.putProperty( charIDToTypeID( "Path" ), charIDToTypeID( "WrPt" ));</p><p>desc0.putReference( charIDToTypeID( "null" ), ref);</p><p>var desc1 = new ActionDescriptor()</p><p>var idPrc = charIDToTypeID( "#Prc");</p><p>desc1.putUnitDouble( charIDToTypeID( "Top " ), idPrc, 0.000000);</p><p>desc1.putUnitDouble( charIDToTypeID( "Left" ), idPrc, 0.000000);</p><p>desc1.putUnitDouble( charIDToTypeID( "Btom" ), idPrc, 100.000000);</p><p>desc1.putUnitDouble( charIDToTypeID( "Rght" ), idPrc, 100.000000);</p><p>desc1.putUnitDouble( charIDToTypeID( "Rds " ), charIDToTypeID( "#Pxl" ), rad);</p><p>desc0.putObject( charIDToTypeID( "T " ), charIDToTypeID( "Rctn" ), desc1);</p><p>executeAction( charIDToTypeID( "setd" ), desc0, DialogModes.NO);</p><p>aDoc.resizeCanvas (totalW+abst, totalH+abst);</p><p>var aPath = aDoc.pathItems[aDoc.pathItems.length-1]; aPath.makeSelection(0, true, SelectionType.REPLACE); aPath.remove();</p><p>var sel = aDoc.selection; sel.invert(); aDoc.selection.cut();[/code]</p><p></p><p>Wie auch immer, mit solchen kleinen Spielereien (wie dieser) kann man als Coder kein Geld verdienen. (Die Forumeigner hingegen schon)</p><p>Viel Spass noch</p><p><img src="/styles/default/xenforo/smilies/zwinker.gif" class="smilie" loading="lazy" alt=";)" title="Wink ;)" data-shortname=";)" /></p></blockquote><p></p>
[QUOTE="pixxxelschubser, post: 2461934, member: 167287"] ??? Da sind wir grad ein bisschen verschiedener Meinung. Für solche Kleinigkeiten reicht ein ausgelesener AM-Code vollkommen aus. Und ob der narrensicher ist oder nicht, das ist eher egal. Und einen solchen Code kann man problemlos veröffentlichen. Hier einmal voll funktionsfähig mit transparentem Rahmen (sind knapp 100 Zeilen, da ohne jegliche manuelle Nachbearbeitung): [code=JavaScript]var idsetd = charIDToTypeID( "setd" ); var desc1 = new ActionDescriptor(); var idnull = charIDToTypeID( "null" ); var ref1 = new ActionReference(); var idLyr = charIDToTypeID( "Lyr " ); var idBckg = charIDToTypeID( "Bckg" ); ref1.putProperty( idLyr, idBckg ); desc1.putReference( idnull, ref1 ); var idT = charIDToTypeID( "T " ); var desc2 = new ActionDescriptor(); var idOpct = charIDToTypeID( "Opct" ); var idPrc = charIDToTypeID( "#Prc" ); desc2.putUnitDouble( idOpct, idPrc, 100.000000 ); var idMd = charIDToTypeID( "Md " ); var idBlnM = charIDToTypeID( "BlnM" ); var idNrml = charIDToTypeID( "Nrml" ); desc2.putEnumerated( idMd, idBlnM, idNrml ); var idLyr = charIDToTypeID( "Lyr " ); desc1.putObject( idT, idLyr, desc2 ); executeAction( idsetd, desc1, DialogModes.NO ); var idsetd = charIDToTypeID( "setd" ); var desc3 = new ActionDescriptor(); var idnull = charIDToTypeID( "null" ); var ref2 = new ActionReference(); var idPath = charIDToTypeID( "Path" ); var idWrPt = charIDToTypeID( "WrPt" ); ref2.putProperty( idPath, idWrPt ); desc3.putReference( idnull, ref2 ); var idT = charIDToTypeID( "T " ); var desc4 = new ActionDescriptor(); var idTop = charIDToTypeID( "Top " ); var idPrc = charIDToTypeID( "#Prc" ); desc4.putUnitDouble( idTop, idPrc, 0.000000 ); var idLeft = charIDToTypeID( "Left" ); var idPrc = charIDToTypeID( "#Prc" ); desc4.putUnitDouble( idLeft, idPrc, 0.000000 ); var idBtom = charIDToTypeID( "Btom" ); var idPrc = charIDToTypeID( "#Prc" ); desc4.putUnitDouble( idBtom, idPrc, 100.000000 ); var idRght = charIDToTypeID( "Rght" ); var idPrc = charIDToTypeID( "#Prc" ); desc4.putUnitDouble( idRght, idPrc, 100.000000 ); var idRds = charIDToTypeID( "Rds " ); var idPxl = charIDToTypeID( "#Pxl" ); desc4.putUnitDouble( idRds, idPxl, 30.000000 ); var idRctn = charIDToTypeID( "Rctn" ); desc3.putObject( idT, idRctn, desc4 ); executeAction( idsetd, desc3, DialogModes.NO ); var idCnvS = charIDToTypeID( "CnvS" ); var desc5 = new ActionDescriptor(); var idRltv = charIDToTypeID( "Rltv" ); desc5.putBoolean( idRltv, true ); var idWdth = charIDToTypeID( "Wdth" ); var idPxl = charIDToTypeID( "#Pxl" ); desc5.putUnitDouble( idWdth, idPxl, 40.000000 ); var idHght = charIDToTypeID( "Hght" ); var idPxl = charIDToTypeID( "#Pxl" ); desc5.putUnitDouble( idHght, idPxl, 40.000000 ); var idHrzn = charIDToTypeID( "Hrzn" ); var idHrzL = charIDToTypeID( "HrzL" ); var idCntr = charIDToTypeID( "Cntr" ); desc5.putEnumerated( idHrzn, idHrzL, idCntr ); var idVrtc = charIDToTypeID( "Vrtc" ); var idVrtL = charIDToTypeID( "VrtL" ); var idCntr = charIDToTypeID( "Cntr" ); desc5.putEnumerated( idVrtc, idVrtL, idCntr ); executeAction( idCnvS, desc5, DialogModes.NO ); var idsetd = charIDToTypeID( "setd" ); var desc6 = new ActionDescriptor(); var idnull = charIDToTypeID( "null" ); var ref3 = new ActionReference(); var idChnl = charIDToTypeID( "Chnl" ); var idfsel = charIDToTypeID( "fsel" ); ref3.putProperty( idChnl, idfsel ); desc6.putReference( idnull, ref3 ); var idT = charIDToTypeID( "T " ); var ref4 = new ActionReference(); var idPath = charIDToTypeID( "Path" ); var idWrPt = charIDToTypeID( "WrPt" ); ref4.putProperty( idPath, idWrPt ); desc6.putReference( idT, ref4 ); var idVrsn = charIDToTypeID( "Vrsn" ); desc6.putInteger( idVrsn, 1 ); var idvectorMaskParams = stringIDToTypeID( "vectorMaskParams" ); desc6.putBoolean( idvectorMaskParams, true ); executeAction( idsetd, desc6, DialogModes.NO ); var idInvs = charIDToTypeID( "Invs" ); executeAction( idInvs, undefined, DialogModes.NO ); var idDlt = charIDToTypeID( "Dlt " ); var desc7 = new ActionDescriptor(); var idnull = charIDToTypeID( "null" ); var ref5 = new ActionReference(); var idPath = charIDToTypeID( "Path" ); var idWrPt = charIDToTypeID( "WrPt" ); ref5.putProperty( idPath, idWrPt ); desc7.putReference( idnull, ref5 ); executeAction( idDlt, desc7, DialogModes.NO ); var idcut = charIDToTypeID( "cut " ); executeAction( idcut, undefined, DialogModes.NO );[/code] Und falls man das Ganze als ExtendScript - Javascript - AM-Code - Mix erstellt, dann reichen zusammengefasst schon mal 20 Zeilen (wenn man die Kommentarzeilen aussen vorlässt). und wer will (und kann), der darf sich gerne selbst noch ein paar sinnvolle Routinen zum Fehlerabfangen einbauen: [code=JavaScript]// RoundedFrame2.jsx // http://www.psd-tutorials.de/forum/threads/rahmen-wie-bei-instagram-automatisiert-erstellen.166291/ // erstellt abgerundete (transparente) Rahmen // regards pixxxelschubser var aDoc = app.activeDocument; app.preferences.rulerUnits = Units.PIXELS; var aLay = aDoc.activeLayer; aLay.isBackgroundLayer = false; var abst = Number(prompt("Rahmenbreite in Pixeln festlegen:", 40, "Rahmenbreite")); var rad = Number(prompt("Radius in Pixeln festlegen:", 30, "Rahmenbreite")); var totalH = aDoc.height.as("PIXELS"), totalW = aDoc.width.as("PIXELS"); var desc0 = new ActionDescriptor(); var ref = new ActionReference(); ref.putProperty( charIDToTypeID( "Path" ), charIDToTypeID( "WrPt" )); desc0.putReference( charIDToTypeID( "null" ), ref); var desc1 = new ActionDescriptor() var idPrc = charIDToTypeID( "#Prc"); desc1.putUnitDouble( charIDToTypeID( "Top " ), idPrc, 0.000000); desc1.putUnitDouble( charIDToTypeID( "Left" ), idPrc, 0.000000); desc1.putUnitDouble( charIDToTypeID( "Btom" ), idPrc, 100.000000); desc1.putUnitDouble( charIDToTypeID( "Rght" ), idPrc, 100.000000); desc1.putUnitDouble( charIDToTypeID( "Rds " ), charIDToTypeID( "#Pxl" ), rad); desc0.putObject( charIDToTypeID( "T " ), charIDToTypeID( "Rctn" ), desc1); executeAction( charIDToTypeID( "setd" ), desc0, DialogModes.NO); aDoc.resizeCanvas (totalW+abst, totalH+abst); var aPath = aDoc.pathItems[aDoc.pathItems.length-1]; aPath.makeSelection(0, true, SelectionType.REPLACE); aPath.remove(); var sel = aDoc.selection; sel.invert(); aDoc.selection.cut();[/code] Wie auch immer, mit solchen kleinen Spielereien (wie dieser) kann man als Coder kein Geld verdienen. (Die Forumeigner hingegen schon) Viel Spass noch ;) [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 5, ▼ = 2 und ■ = 7, was ist ▲ × ▼ + ■?
Antworten
Start
Forum
Bildbearbeitung (2D), Vektor- & Layoutbearbeitung
Photoshop
Rahmen wie bei Instagram (automatisiert) erstellen
Oben