글 수 41
출처 : SLR클럽자료실
참고 : slr클럽자료실다른글
어도비 사이트의 스크립트 관련 도움말 : http://help.adobe.com/ko_KR/Photoshop/11.0/WSfd1234e1c4b69f30ea53e41001031ab64-7418a.html
외국사이트에서 소스 다운 받기
1. http://www.photoshopsupport.com/tutorials/jennifer/photoshop-scripts.html
2. http://morris-photographics.com/photoshop/scripts/hide-layers.html
포토샵에서 스크립트를 지원하는걸 이제서야 알다니.. ㅋㅋ 부끄럽다.. ㅋㅋ
액션을 사용하면서 항상 불만이었던게 액션을 코드 형태로 수정할 수 없다는게 불만이었는데..
스크립트로 컨트롤 할 수 있는 방법이 있었다니..
이 자리를 빌어,
이런 좋은 정보를 주신 SLR클럽의 율e사랑님께 감사의 말씀을 올립니다.
첨부한 resizer.jsx 파일은 율e사랑님께서 제공해주신 파일이며,
자세한 내용은 위 출처에 있는 링크로 가서 보면 된다.
요약하자면..
1. 포토샵에서도 스크립트를 지원하며, 그 스크립트 언어는 자바스크립(.jsx)과 비쥬얼 베이직(.vbs)이다. 여기선 javascript.
2. 스크립트의 기본 위치는 "C:\Program Files\Adobe\Adobe Photoshop CS3\UserActionScript\JavaScript\Resizer.jsx" 이다.
2. 포토샵 메뉴에서, 파일 > 스크립트 > 찾아보기 를 선택하면 스크립트를 실행시킬 수 있다.
*율e사랑님께서 소스에 달아주신 코멘트를 보면 아래와 같습니다.
참고 : slr클럽자료실다른글
어도비 사이트의 스크립트 관련 도움말 : http://help.adobe.com/ko_KR/Photoshop/11.0/WSfd1234e1c4b69f30ea53e41001031ab64-7418a.html
외국사이트에서 소스 다운 받기
1. http://www.photoshopsupport.com/tutorials/jennifer/photoshop-scripts.html
2. http://morris-photographics.com/photoshop/scripts/hide-layers.html
포토샵에서 스크립트를 지원하는걸 이제서야 알다니.. ㅋㅋ 부끄럽다.. ㅋㅋ
액션을 사용하면서 항상 불만이었던게 액션을 코드 형태로 수정할 수 없다는게 불만이었는데..
스크립트로 컨트롤 할 수 있는 방법이 있었다니..
이 자리를 빌어,
이런 좋은 정보를 주신 SLR클럽의 율e사랑님께 감사의 말씀을 올립니다.
첨부한 resizer.jsx 파일은 율e사랑님께서 제공해주신 파일이며,
자세한 내용은 위 출처에 있는 링크로 가서 보면 된다.
요약하자면..
1. 포토샵에서도 스크립트를 지원하며, 그 스크립트 언어는 자바스크립(.jsx)과 비쥬얼 베이직(.vbs)이다. 여기선 javascript.
2. 스크립트의 기본 위치는 "C:\Program Files\Adobe\Adobe Photoshop CS3\UserActionScript\JavaScript\Resizer.jsx" 이다.
2. 포토샵 메뉴에서, 파일 > 스크립트 > 찾아보기 를 선택하면 스크립트를 실행시킬 수 있다.
*율e사랑님께서 소스에 달아주신 코멘트를 보면 아래와 같습니다.
1: #target photoshop 2: app.bringToFront(); 3: // 파일 자체만으로 실행할 시 포토샵을 타겟으로 실행한다는 코드로 보여집니다. 다시한번 말씀 드리지만 저는 자바를 전혀 모릅니다. ㅜㅡ 4: 5: 6: 7: if (!app.documents.length > 0) { 8: alert("열린 문서가 없습니다."); 9: } 10: else { 11: // 포토샵에 아무런 사진도 불러오지 않았을 경우 실행을 취소한다는 코드입니다. 열려진 파일이 있을경우 아래 코드를 실행합니다. 12: 13: 14: 15: var doc = app.activeDocument.duplicate(); 16: // 열려있는 사진을 이미지 복제하여 사본을 만든 후, doc 라고 정의합니다. 17: 18: 19: 20: fitImage(1280); 21: // 아래의 fitImage 라는 함수를 실행하며 그 입력조건으로 최종 축소이미지(장축기준 - 1280픽셀) 사이즈 적용합니다. 800픽셀로 축소할시는 1280을 800으로 변경하면 되겠죠? 22: 23: 24: 25: // 위에서 실행하라는 함수의 내용입니다. 26: function fitImage(newImgSize) { 27: docRef = app.activeDocument; 28: // 열려진 문서를 docRef 이름으로 정의합니다. 29: var prodImg = docRef.activeLayer; 30: // docRef 이름으로 정의된 현재 레이어를 prodImg 이름으로 정의합니다. 31: var current_units = preferences.rulerUnits; 32: // 이 부분을 잘 모르겠습니다. 대략 단위에 대한 정의라고만... 33: var A = 50; 34: // 언샵마스크 적용시 Amount 수치입니다. 35: var B = 0.8; 36: // 역시 언샵마스크 적용시 Radius 시작값입니다. 0.8을 적용할 시 0.2씩 차감되어 0.8 --> 0.6 --> 0.4 이런식으로 축소시 적용되는 바, 강한 샤픈을 원하면 이 수치를 조정하면 됩니다. 37: 38: if (docRef.width > docRef.height) { 39: // 조건식입니다. 가로가 세로보다 클 경우 즉, 가로사진을 말합니다. 40: while(docRef.width * 0.75 > newImgSize){ 41: preferences.rulerUnits = Units.PERCENT 42: // 크기에 대한 단위를 %(퍼센트)로 지정합니다. 43: docRef.resizeImage(75, undefined, undefined, ResampleMethod.BICUBICSHARPER) 44: // 리사이즈 명령어입니다. 45: //(정의된 현재문서.resizeImage(가로크기(%), 세로크기(미적용), 해상도(미적용), 리사이즈알고리즘) 46: prodImg.applyUnSharpMask(A,B,3); 47: // 언샵마스크를 적용합니다. 48: // (정의된 현재레이어.applyUnSharpMask(Amount값, Radius값, 고대비값) 49: // 여기서 Radius값은 B라는 변수로 정의되어 있는바, 그 조건은 아래의 코드에 따릅니다. 50: if (B > 0.1) { 51: B = B - 0.2 52: } else 53: if (B <= 0.1) { 54: B = 0.1 55: } 56: // 순환중 적용되는 Radius값이 0.1을 초과할 경우에만 이전 값에서 0.2씩 차감하고 57: // 0.1과 같거나 부족할 경우에는 항상 0.1을 적용하라는 말입니다. 58: preferences.rulerUnits = Units.PIXELS; 59: // 크기에 대한 단위를 원래의 픽셀 단위로 바꿔 줍니다. 60: } 61: // 위의 코드는 순환문입니다. 가로길이의 75% 크기가 축소하고자 하는 이미지 (1280픽셀)보다 클 경우에만 코드를 수행하라는 의미입니다. 62: 63: preferences.rulerUnits = Units.PIXELS; 64: docRef.resizeImage(newImgSize, undefined, undefined, ResampleMethod.BICUBICSHARPER) 65: prodImg.applyUnSharpMask(300,0.1,3); 66: // 75%씩 줄여 원하는 축소이미지에 가장 근접하면 순환문을 중지하고 처음 명시한 1280픽셀 크기로 최종 적용하여 마칩니다. 67: // "newImgSize" 라고 정의된 최종이미지 크기(1280픽셀)을 가로사이즈에 적용하고 언샵마스크를 68: // 300, 0.1, 3 이라는 수치로 적용하라는 의미입니다. 69: 70: 71: // 아래 코드는 위 내용과 동일하며 가로사진과 세로사진을 구별하는 조건으로써 동일한 과정을 수행하는 코드입니다. 72: } else 73: if (docRef.width < docRef.height) { 74: 75: while(docRef.height * 0.75 > newImgSize){ //세로사진 76: preferences.rulerUnits = Units.PERCENT 77: docRef.resizeImage(undefined, 75, undefined, ResampleMethod.BICUBICSHARPER) 78: prodImg.applyUnSharpMask(A,B,3); 79: if (B > 0.1) { 80: B = B - 0.2 81: } else 82: if (B <= 0.1) { 83: B = 0.1 84: } 85: preferences.rulerUnits = Units.PIXELS; 86: } 87: 88: preferences.rulerUnits = Units.PIXELS; 89: docRef.resizeImage(undefined, newImgSize, undefined, ResampleMethod.BICUBICSHARPER) 90: prodImg.applyUnSharpMask(300,0.1,3); 91: 92: } else 93: if (docRef.width == docRef.height) { 94: 95: while(docRef.height * 0.75 > newImgSize){ //정사각형 96: preferences.rulerUnits = Units.PERCENT 97: docRef.resizeImage(undefined, 75, undefined, ResampleMethod.BICUBICSHARPER) 98: prodImg.applyUnSharpMask(A,B,3); 99: if (B > 0.1) { 100: B = B - 0.2 101: } else 102: if (B <= 0.1) { 103: B = 0.1 104: } 105: preferences.rulerUnits = Units.PIXELS; 106: 107: } 108: preferences.rulerUnits = Units.PIXELS; 109: docRef.resizeImage(newImgSize, undefined, undefined, ResampleMethod.BICUBICSHARPER) 110: prodImg.applyUnSharpMask(300,0.1,3); 111: 112: } 113: } 114: } |
[ 내용 추가 : 2011.12.14 ]
사진의 exif정보를 불러와 타임 스탬프를 찍어주는 소스..
정보출처 : http://hannim.com/682
다운받기 : photoshop_script_printPhotoTimeStamp_20111214-1.jsx