![]() ![]() |
2008. Feb 25., 01:11
Post
#1
|
|
|
új tag ![]() Group: tag Posts: 12 Joined: 08. February 22. Member No.: 5188 |
Sziasztok!
Az évtized rejtélye: maradékot szeretnék visszakapni JavaScript-ben! Ezt lehet, hogy programozáshoz kívánnátok, de a Photoshop .jsx verziójáról van szó, ezért írok ide. JavaScript extended. Dugig van "Photshop related" parancsokkal. (vagy mikkel?) Feladat: - java koma megvizsgálja hány db. réteg van az adott .psd fájlban - ha a szám páros: alert("páros" ); - ha nem: alert("páratlan"); No, nem a felugró ablak a lényeg, feladat híján így tudhatjuk csak meg, hogy sikerült e vagy sem Arra gondoltam, hogy elosztom a documentumban lévő rétegek számát kettővel. Ha a maradék nulla: páros, ha nem, akkor nem. De nem tudom, hogy szedhetem ki a maradékot egy JavaScriptből!!! (pl. Pascalban mod, azt hiszem...) De nem is ide akartam írni! Hogy történt ez? |
|
|
|
2008. Feb 25., 09:25
Post
#2
|
|
![]() Commander 1337 ![]() ![]() ![]() ![]() ![]() Group: törzstag Posts: 5506 Joined: 03. May 25. From: Szeged Member No.: 38 |
A % a maradékos osztás maradékának operátora. Tehát:
CODE if(ize % 2) { alert('páratlan'); } else { alert('páros'); } Sima JS-ben működik, PS-ről fogalmam sincs. BlackY -------------------- BlackY
Blog Új téma vagy tutorial Szerkesztő | Törzstag -- Hogyan kérdezzünk? Üvöltsük meg együtt a holdat: Wuff :D |
|
|
|
2008. Feb 25., 13:46
Post
#3
|
|
|
új tag ![]() Group: tag Posts: 12 Joined: 08. February 22. Member No.: 5188 |
Köszönöm! Ez gyors volt, és működik is.
Van egy másik probléma, lehet, hogy találkoztatok vele. Egy script futtatása után (mindegy mit csinál) az aktív dokumentum kimászik a PS felületéről. Azaz csak az alja lóg be és nem lehet ablakként kezelni, csak "F" után valamelyik teljesképernyős módban. Van róla kép is csak nem tudom, hogy kell ide berakni. |
|
|
|
2008. Feb 25., 22:46
Post
#4
|
|
![]() alias Pyro ![]() ![]() ![]() Group: haladó tag Posts: 788 Joined: 06. January 10. From: Miskolc Member No.: 1792 |
Előfordult már párszor, ezt úgy hívják szívás. Fájl > Mentés, majd nyisd meg újra.
-------------------- |
|
|
|
2008. Feb 26., 15:36
Post
#5
|
|
|
új tag ![]() Group: tag Posts: 12 Joined: 08. February 22. Member No.: 5188 |
OK
|
|
|
|
2008. Feb 27., 01:15
Post
#6
|
|
|
új tag ![]() Group: tag Posts: 12 Joined: 08. February 22. Member No.: 5188 |
Írtam egy scriptet amely egy .psd fájl rétegeit helyezné át egy új fájlba.
Az új fájlt az eredeti méretei alapján hozná létre. Vissza az eredeti fájlba: legalsó réteget kivág; irány az új fájl: itt beilleszt; amíg van réteg az eredeti fájlban. Aztán majd mentést kellene bele írni, stb.. De majd akkor ha nem feltételes módban lesz a felső három sor. Szerintetek mi lehet a gond? Nagyon sötét vagyok és nem veszek észre olyasmit, amit illene? Itt e script: CODE #target photoshop app.bringToFront() if (app.documents.length < 1) {alert("Nincs nyitott dokumentum")} else { //docref a nyitott fájl változója. Ő vele //hivatkozunk majd a másolandó rétegeket tartal- //mazó fájlra. var docref = app.activeDocument; //var docref = app.documents[0]; /* így is jó talán */ //Új fájl az fenti paraméterekkel: //Ebbe a fájlba kellene majd a rétegeket másolni, //de ez a fájl nem jön létre. Miért??? //Nincs error üzenet var newDoc = app.documetns.add(docref.length, docref.heigth, docref.resolution, "Új dokumentum"); } //Ha helyesen fut most két fájl van,az //elsőből a másodikba helyezzük át a rétegeket. while (docref.artLayers.length > 0) //Amoig van mit kivágni... { //Aktiváljuk az eredeti doksit app.activeDocument = docref; //Ez a "legalsó" réteg. var layRef = docref.artLayers[0]; //Ha a 0. réteg Background, //akkor alakítsuk sima réteggé, //hogy kivághassuk if (layRef.isBackgroundLayer = true) {layRef.isBackgroundLayer = false} else { docref.activeLayer = layRef; //Ki van jelölve a mindenkori 0. réteg. docref.layRef.cut(); //Ki van vágva. } //Második fájlt aktívvá tenni: app.activeDocument = newDoc; newDoc.activeLayer = newDoc.layers[0]; //BG réteg kiválasztva. (Ugye??) //Na az alsó sorban egyáltalán nem vagyok bíztos. newDoc.artLayers.paste(); } És nem méltóztatik működni. Igyekeztem érthetővé tenni a komentekkel, leírni, hogy mire gondolok, remélem használható valamire! This post has been edited by Nimród: 2008. Feb 27., 01:19 |
|
|
|
2008. Feb 27., 13:00
Post
#7
|
|
|
új tag ![]() Group: tag Posts: 12 Joined: 08. February 22. Member No.: 5188 |
while (docref.artLayers.length > 1)
Így helyes, mert 0 réteg soha nem lesz. Úgy emlékszem kijavítottam.... |
|
|
|
2008. Feb 28., 02:42
Post
#8
|
|
|
új tag ![]() Group: tag Posts: 12 Joined: 08. February 22. Member No.: 5188 |
|
|
|
|
2008. Mar 1., 13:01
Post
#9
|
|
|
új tag ![]() Group: tag Posts: 12 Joined: 08. February 22. Member No.: 5188 |
Sokat akar a szarka, gondoltam amikor ránéztem s fenti kódra. A probléma sokkal mélyebben van.
CODE var docref = app.acitveDocument; app.documetns.add(docref.width, docref.heigth, docref.resolution, "Új dokumentum"); docref = null; Itt a második sorban "undefined is not an object" hibaüzenet jön a szerkesztő programtól. Segítsen valaki lécci, mert nem tudom hova csűrnicsavarni. Működnie kellene. |
|
|
|
2008. Mar 1., 13:28
Post
#10
|
|
![]() Commander 1337 ![]() ![]() ![]() ![]() ![]() Group: törzstag Posts: 5506 Joined: 03. May 25. From: Szeged Member No.: 38 |
documetns
helyett tippre documents-nek kéne lennie... (Amúgy hányas verziótól lehet ilyeneket művelni és egész pontosan hogyan? Ha röviden ezt leírnád, nagyobb segítség tudnék lenni, ha tesztelhetném is ezeket BlackY -------------------- BlackY
Blog Új téma vagy tutorial Szerkesztő | Törzstag -- Hogyan kérdezzünk? Üvöltsük meg együtt a holdat: Wuff :D |
|
|
|
2008. Mar 2., 13:51
Post
#11
|
|
|
új tag ![]() Group: tag Posts: 12 Joined: 08. February 22. Member No.: 5188 |
Megigérem, hogy aludni is fogok a jövőben
CS2 nél találkoztam vele előbbször. ExtendScript-nek nevezik ezt az implementációt. Minden infót megtalálsz az ~Adobe\Adobe Photoshop CS(akármennyi)\Scripting Guide mappában. |
|
|
|
2008. Mar 2., 22:06
Post
#12
|
|
![]() Commander 1337 ![]() ![]() ![]() ![]() ![]() Group: törzstag Posts: 5506 Joined: 03. May 25. From: Szeged Member No.: 38 |
Majd valamikor ezt megnézem, csak ahoz előbb updatelnem kell a PS-em (PS 7-et használok, arra, amire nekem kell sok is, nem bajlódom CS-kkel).
BlackY -------------------- BlackY
Blog Új téma vagy tutorial Szerkesztő | Törzstag -- Hogyan kérdezzünk? Üvöltsük meg együtt a holdat: Wuff :D |
|
|
|
2008. Mar 3., 18:54
Post
#13
|
|
|
új tag ![]() Group: tag Posts: 12 Joined: 08. February 22. Member No.: 5188 |
Íháá! Nah itt van egy működő kód, DE(!)
CODE #target photoshop app.bringToFront(); var docRef = app.documents[0]; app.documents.add(docRef.width, docRef.height, docRef.resolution, "Target File"); var docTar = app.documents[1]; app.activeDocument = docRef; docRef.activeLayer = docRef.layers[docRef.layers.length-1]; docRef.artLayers.add(); Amit tesz: Lemásol egy nyitott documentumot. (Méret, stb...) Visszamegy az eredeti fájlba, kijelöli a B.Ground layert, majd hozzáad egy újabb layert.(Sok rétegből álló fájl kell neki). Így az új rétegnek a BG fölé kellene kerülnie, de nem így teszi, hanem legfelűlre kerül. Nem oda kell. Ha gondolod leírom egy mailben a telyes feladatot amiről szó van BlackY. Mert ezek ugye töredékek... |
|
|
|
![]() ![]() |
| Lo-Fi Version | Time is now: 2012. May 23. - 10:42 |