반응형
매크로 설명
- 엑셀의 VBA 코드를 활용하여 포토샵 이미지를 리사이즈 하고 Export까지 수행하는 매크로이다.
- 인스타그램을 하다보니 최종편집 후 1080 사이즈의 이미지를 만드는 게 귀찮기도 하고,
- 포토샵의 액션 기능을 사용하는 경우 원본 Document의 사이즈에 따라 크기가 제멋대로 나와서 만들어 보았다.
- 가로 이미지와 세로 이미지를 인식하여 장축이 가로인 경우에는 가로가 1080이 되도록,
- 세로가 장축인 경우에는 세로가 1080이 되도록 리사이즈한다.
VBA Code
Option Explicit
Sub resize_image()
Dim appPhoto As Photoshop.Application
Dim docPhoto As Photoshop.Document
Dim imgSize As Double
Dim resizeRate As Double
Dim exportOption As Photoshop.ExportOptionsSaveForWeb
Dim outputPath As String
Dim outFileName As String
outputPath = "E:\" '이미지 저장 경로 설정
'outFileName = "resizedIMG.jpeg" '파일명 설정
imgSize = 1080 '장축의 이미지 사이즈 설정(필요시 직접 설정)
Set appPhoto = New Photoshop.Application '포토샵 개체 선언
Set exportOption = New Photoshop.ExportOptionsSaveForWeb 'Export 옵션 설정
exportOption.Format = psJPEGSave
exportOption.Quality = 100
If appPhoto Is Nothing Then
MsgBox "error has occured, plz retry"
Exit Sub
Else
appPhoto.Visible = True
End If
appPhoto.Preferences.RulerUnits = psPixels '포토샵의 격자단위를 픽셀(pixel)로 변경
appPhoto.Application.DisplayDialogs = psDisplayNoDialogs '대화상자 끄기
Set docPhoto = appPhoto.ActiveDocument '현재 활성화된 문서를 docPhoto로 선언
With docPhoto
If .Width >= .Height Then '가로 이미지인 경우
resizeRate = imgSize / .Width '가로를 기준으로 리사이즈 비율 계산
Else
resizeRate = imgSize / .Height
End If
End With
docPhoto.ResizeImage Width:=(docPhoto.Width * resizeRate), _
Height:=(docPhoto.Height * resizeRate), _
Resolution:=300, _
ResampleMethod:=psBicubic
Call docPhoto.Export(outputPath & Split(docPhoto.Name, ".")(0) & ".jpeg", psSaveForWeb, exportOption)
MsgBox "Execution Complete : " & "ResizeRate = " & resizeRate * 100 & "%"
End Sub
매크로 실행 동영상
Copyright (2018) Ruahneuma. All Rights Reserved.
반응형
'VBA Macro > VBA Photoshop' 카테고리의 다른 글
포토샵 피부보정(주파수분리 적절한 가우시안 블러값) (2) | 2024.10.04 |
---|---|
사진 속 중간회색 찾기(화이트밸런스 맞추기) 매크로 (0) | 2018.03.12 |
엑셀 VBA로 포토샵 이미지 자르기(불투명 부분 날리기) (0) | 2018.03.07 |
엑셀 VBA로 포토샵 이미지 크기 변경 (0) | 2018.03.06 |