dims¶
/usr/local/m2/setting.json
다음 영역에 대해 기술한다.
{
"functions": {
"contents": {
"dims": {
...
}
}
}
}
See also
How to use¶
원본 URL 뒤에 가공하고 싶은 DIMS 명령어를 추가한다.
# 원본
https://example.com/sample.jpg
# 원본 + 키워드(dims) + 명령어/옵션
https://example.com/sample.jpg/dims/resize/600x400
Note
만약 M2 완전장애 상황이 발생하더라도 원본이미지가 보이도록 구성하고 싶다면, 임의의 QueryString 파라미터를 통해 DIMS 명령을 제공한다.
https://example.com/sample.jpg?m2param=/dims/resize/800x600
https://example.com/sample.jpg?key=value&m2param=/dims/resize/800x600
M2 파라미터는 반드시 QueryString 맨 마지막에 위치해야 하며 URL 인코딩을 하지 않는다.
원본서버는 Unknown QueryString을 해석하지 않는다.
DIMS에 의해 해석된 원본은 아래와 같다.
https://example.com/sample.jpg?m2param=
위와 같이 불완전한 원본 URL이 싫다면 urlRewrites 를 통해 제거한다.
명령어 리스트¶
명령어에 이미지를 처리하는 기준점은 9가지의 Gravity
로 표현된다.
North (N)
0° = 360°East (E)
90°South (S)
180°West (W)
270°Northeast (NE)
45°Southeast (SE)
135°Southwest (SW)
225°Northwest (NW)
315°Center (C)
-
기준점을 지칭할 때는 North
또는 NorthGravity
로 표현된다.
크기변경¶
# 기호 = (없음)
# 설명 = 원본비율 유지. 변경된 가로/세로 중 더 작은 길이로 서비스.
https://example.com/sample.jpg/dims/resize/600x400
https://example.com/sample.jpg/dims/resizec/600x400
https://example.com/sample.jpg/dims/resizef/600x400
https://example.com/sample.jpg/dims/resizemc/600x400
https://example.com/sample.jpg/dims/resizecrop/600x400+10+40
# 기호 = !
# 설명 = 원본비율 무시. 입력 값대로 크기변경
https://example.com/sample.jpg/dims/resize/!600x400
# 기호 = ^
# 설명 = 가로, 세로 기준 리사이즈된 크기가 더 큰 이미지로 서비스
# 예제 = 1000 x 667 또는 750 x 500 중 더 큰 이미지로 서비스
https://example.com/sample.jpg/dims/resize/^1000x500
# 기호 = > 또는 <
# 설명 = 해상도가 입력 값보다 크거나 작을 경우 크기를 변경
# 예제 = 가로가 1000보다 클 경우에만 가로 1000을 기준으로 리사이즈
https://example.com/sample.jpg/dims/resize/>1000x500
# 기호 = %
# 설명 = 가로, 세로 기준 원본 Width, Height 에서 N% 만큼 크기를 변경
# 예제 = 가로를 50% 크기로 줄여서 리사이즈
https://example.com/sample.jpg/dims/resize/50%25
명령어 |
파라미터 |
동작 |
---|---|---|
|
가로x세로 |
|
|
가로x세로 |
|
|
가로x세로 |
|
|
가로x세로 |
|
|
가로x세로+X+Y |
|
잘라내기¶
https://example.com/sample.jpg/dims/crop/500x300+10+40
https://example.com/sample.jpg/dims/cropcenter/500x300+10+10
https://example.com/sample.jpg/dims/cropc/min
https://example.com/sample.jpg/dims/cropc/max
명령어 |
파라미터 |
동작 |
---|---|---|
|
가로x세로+X+Y |
|
|
가로x세로+X+Y |
|
|
|
|
|
가로x세로+X+Y |
|
최적화/품질 변경¶
https://example.com/sample.jpg/dims/quality/85
https://example.com/sample.jpg/dims/strip/true
https://example.com/sample.jpg/dims/optimize
명령어 |
파라미터 |
동작 |
---|---|---|
|
|
|
|
|
|
|
(없음) |
|
포맷 변경¶
https://example.com/sample.jpg/dims/format/png
명령어 |
파라미터 |
동작 |
---|---|---|
|
|
|
색감 변경¶
https://example.com/sample.jpg/dims/grayscale/true
https://example.com/sample.jpg/dims/brightness/40
https://example.com/sample.jpg/dims/sepia/0.8
https://example.com/sample.jpg/dims/invert/true
https://example.com/sample.jpg/dims/sharpen/0x1
명령어 |
파라미터 |
동작 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
캔버스 조절¶
https://example.com/sample.jpg/dims/trim/10
https://example.com/sample.jpg/dims/extent/700x500
https://example.com/sample.jpg/dims/round/10
https://example.com/sample.jpg/dims/circle/400x400
https://example.com/sample.jpg/dims/drawcircle/500x500+100+100
명령어 |
파라미터 |
동작 |
---|---|---|
|
숫자 |
|
|
가로x세로 |
|
|
|
|
|
가로x세로 |
|
|
가로x세로+X+Y |
|
합성¶
https://example.com/sample.jpg/dims/composite/watermark1
명령어 |
파라미터 |
동작 |
---|---|---|
|
설정 |
|
회전¶
https://example.com/sample.jpg/dims/rotate/90
https://example.com/sample.jpg/dims/autorotate/true
https://example.com/sample.jpg/dims/flipflop/vertical
명령어 |
파라미터 |
동작 |
---|---|---|
|
|
|
|
|
Note 이 기능은 원본 이미지 메타를 분석하여 동작한다. 따라서 다른 기능들과 함께 사용될 때는 가장 먼저 적용되도록 구성한다. https://example.com/img.jpg/dims/autorotate/on/resize/200x200/...
|
|
|
|
GIF
프레임 제한¶
https://example.com/sample.gif/dims/limit/10
https://example.com/sample.gif/dims/frame/7
명령어 |
파라미터 |
동작 |
---|---|---|
|
프레임 수 |
|
|
프레임 번호 |
|
썸네일 생성¶
https://example.com/sample.jpg/dims/thumbnail/400x300+10+40
명령어 |
파라미터 |
동작 |
---|---|---|
|
가로x세로+X+Y |
|
이미지 분석¶
이미지 분석정보를 JSON
형식으로 응답한다. 이 명령어는 단독으로 수행되어야 한다.
https://example.com/sample.jpg/dims/analyse/src
# resize된 이미지의 정보
https://example.com/sample.jpg/dims/resize/100/dims/analyse/src
명령어 |
파라미터 |
동작 |
---|---|---|
|
|
이미지 분석정보를 제공한다. |
|
|
고~급스럽게 영국식 명령어를 제공한다. |
{
"enable": true,
"url": "/bigimg/noani.gif",
"result": {
"image": {
"size": 3866,
"format": "gif",
"width": 477,
"height": 776,
"animated": false
},
"elapsed": {
"init": 2,
"complete": 14
},
"function": {
"keyword": "dims",
"minSourceSize": 0,
"maxSourceSize": 104857600,
"optimizable": [
"jpeg",
"webp"
]
}
}
}
enable
DIMS 모듈에 적재/처리 가능하다면
true
, 불가하다면false
url
원본 URL
result
분석결과
image
이미지 정보.
DIMS
모듈에 적재할 수 없더라도 가능한 범위에서 분석정보를 제공한다.size (단위: bytes)
용량
format
포맷
width (단위: px)
가로길이
height (단위: px)
세로길이
animated
animated 여부
quality
이미지 압축품질. 이미지에서 제공할 경우만 존재.
elapsed
경과시간
init (단위: ms)
호출시점 ~ 원본이미지 초기화
complete (단위: ms)
호출시점 ~ 완료
function
DIMS 설정
keyword
호출 키워드
minSourceSize
최소 사이즈
maxSourceSize
최대 사이즈
optimizable
최적화 가능한 포맷
Note
DIMS로 처리할 수 없는 고용량 GIF
의 경우의 아래와 같이 처리는 불가하지만 result.image
정보를 제공한다.
{
"enable": false,
"error": "maxsize",
"url": "/big/img.gif",
"result": {
"image": {
"size": 43474428,
"format": "gif",
"width": 477,
"height": 776,
"animated": true
},
"function": {
"keyword": "dims",
"minSourceSize": 0,
"maxSourceSize": 10485760,
"optimizable": [
"jpeg",
"webp"
]
}
}
}
기타¶
https://example.com/sample.jpg/dims/interlace/true
https://example.com/sample.jpg/dims/noop
명령어 |
파라미터 |
동작 |
---|---|---|
|
|
|
|
(없음) |
|
meta¶
"meta" : {
"enable": false,
"keyword": "dims",
"minSourceSize": 0,
"maxSourceSize": 30
}
enable (기본: false)
DIMS 활성화
keyword (기본: dims)
키워드
minSourceSize (기본: 0KB)
변환을 허용할 최소 원본 이미지 크기 (단위: KB)
maxSourceSize (기본: 30MB)
변환을 허용할 최대 원본 이미지 크기 (단위: MB)
quality¶
"quality": {
"max": 99,
"format": 99,
"upscale": true
}
max (기본: 99%)
허용할 최대 이미지 품질 (1~100)
format (기본: 99%)
Format이 변경될 때 초기 이미지 품질 (1~100)
Note
100
으로 설정할 경우 무손실 변환으로 진행된다.
이로 인해 얻는 시각적인 이득보다는 성능적 손해가 커 기본 값을 99
로 설정한다.
upscale (기본: true)
소스 이미지 품질보다 높은 품질을 요청할 때 변환 방식.
true
인 경우 강제로 변환하지만false
라면 변환하지 않는다.
jpg¶
preoptimize¶
"preoptimize": {
"enable": true,
"minSize": 1024
}
enable (기본: true)
JPG 처리전 사전 최적화를 진행한다.
minSize (기본: 1024KB)
사전 최적화 진행 최소 사이즈
gif¶
"gif" : {
"selectMinSize": false
}
selectMinSize (기본: false)
변환 후 용량이 원본보다 크다면 원본 GIF를 서비스한다.
composite¶
"composite": [
{
"name": "water_ratio",
"path": "/img/wmark_s.png",
"gravity": "s",
"geometry": "+0+15%",
"dissolve": 50
}
]
name
합성조건 이름
path
합성대상 이미지 경로
gravity (기본: c)
합성할 위치. 좌측상단부터 9가지의 포인트(nw, n, ne, w, c, e, sw, s, se)가 존재한다.
geometry (기본: +0+0)
합성할 이미지 위치
dissolve (기본: 50%)
합성할 이미지 투명도 (0~100)
byOriginal¶
"byOriginal": [
{
"name": "size1",
"matchingList": [
{
"width": 1024,
"height": 768,
"command": "/quality/50"
},
{
"command": "/resize/1024x768"
}
],
}
]
name
조건판단 이름
matchingList
조건판단 리스트. 하위
width
,height
조건이 없다면 조건을 이미지 크기에 상관없이 변환된다.width
가로 길이가 설정 값보다 작으면 적용된다.
height
세로 길이가 설정 값보다 작으면 적용된다.
command
DIMS 명령어