Skip to content

Commit c9f6bc1

Browse files
committed
리사이드 함수 조정
1 parent 444ba0f commit c9f6bc1

File tree

5 files changed

+56
-33
lines changed

5 files changed

+56
-33
lines changed

src/ImageResize/ImageResize.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,10 @@ class ImageResize {
107107
* Play convert
108108
* 이미지 변환 실행
109109
* 이미지 주소로 캔버스로 변환 -> 캔버스를 리사이즈 -> 이미지로 컨버트
110-
* @param {string|HTMLInputElement|File|Blob} src
110+
* @param {string|HTMLInputElement|File|Blob|HTMLCanvasElement} src
111111
* @return {Promise<string>}
112112
*/
113-
async play (src)
113+
async play(src)
114114
{
115115
let res = await this.get(src)
116116
res = await this.resize(res)
@@ -125,7 +125,7 @@ class ImageResize {
125125
* @param {object} options
126126
* @return {Promise<HTMLCanvasElement>}
127127
*/
128-
async get (src, options = undefined)
128+
async get(src, options = undefined)
129129
{
130130
options = !!options ? this.#checkOptions(this.options, options) : this.options
131131
if (typeof src === 'string')
@@ -153,7 +153,7 @@ class ImageResize {
153153
* @param {object} options
154154
* @return {Promise<HTMLCanvasElement>}
155155
*/
156-
async resize (canvas, options = undefined)
156+
async resize(canvas, options = undefined)
157157
{
158158
options = !!options ? this.#checkOptions(this.options, options) : this.options
159159
// get size
@@ -182,7 +182,7 @@ class ImageResize {
182182
* @param {HTMLCanvasElement} canvas
183183
* @param {number} amount
184184
*/
185-
sharpen (canvas, amount = undefined)
185+
sharpen(canvas, amount = undefined)
186186
{
187187
amount = (!isNaN(amount)) ? amount : this.options.sharpen
188188
return filterSharpen(canvas, amount)
@@ -194,7 +194,7 @@ class ImageResize {
194194
* @param {object} options
195195
* @return {Promise}
196196
*/
197-
async output (canvas, options = undefined)
197+
async output(canvas, options = undefined)
198198
{
199199
options = !!options ? this.#checkOptions(this.options, options) : this.options
200200
switch (options.outputType)
@@ -214,7 +214,7 @@ class ImageResize {
214214
* @param {object} value
215215
* @return {ImageResize}
216216
*/
217-
updateOptions (value)
217+
updateOptions(value)
218218
{
219219
this.options = this.#checkOptions(this.options, {
220220
...value,

src/ImageResize/index.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,23 @@ export const ImageResize = ImageResizeModule
55
/**
66
* resize
77
* 한번에 리사이즈 실행하는 함수
8+
* @param {string|HTMLInputElement|File|Blob|HTMLCanvasElement} [src]
9+
* @param {object} options
10+
* @param {number} [options.width]
11+
* @param {number} [options.height]
12+
* @param {'png'|'jpg'|'webp'} [options.format]
13+
* @param {'base64'|'canvas'|'blob'} [options.outputType]
14+
* @param {number} [options.quality]
15+
* @param {number} [options.reSample]
16+
* @param {number} [options.sharpen]
17+
* @param {string} [options.bgColor]
18+
* @return {Promise<any>}
819
*/
9-
export function resize()
20+
export async function resize(src, options)
1021
{
11-
console.log('resize func')
22+
const imageResize = new ImageResize(options)
23+
let canvas = await imageResize.get(src)
24+
canvas = await imageResize.resize(canvas)
25+
canvas = await imageResize.sharpen(canvas)
26+
return await imageResize.output(canvas)
1227
}

src/ImageResize/local.js

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/demo/index.js

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import { ImageResize } from '../ImageResize'
1+
import { ImageResize, resize } from '../ImageResize'
22
import { sleep } from './libs'
33
import './index.css'
44

5-
const imageResize = new ImageResize()
65
const $form = document.getElementById('form')
76
const $result = document.getElementById('result')
87
const values = new Proxy({}, {
@@ -51,22 +50,34 @@ async function onSubmitForm(e)
5150
alert('not found source')
5251
return false
5352
}
53+
delete values.url
54+
delete values.upload
5455

5556
// empty result
5657
$result.innerHTML = ''
5758

5859
try
5960
{
60-
// basic resize
61-
let res = await imageResize.updateOptions(values).play(src)
62-
completeResizeImage(res)
63-
// advanced resize
64-
// let res = await imageResize.updateOptions(values).get(src)
65-
// res = await imageResize.resize(res)
66-
// res = imageResize.sharpen(res)
67-
// res = await ready(res)
68-
// res = await imageResize.output(res)
69-
// completeResizeImage(res)
61+
// set values
62+
const pureValues = { ...values }
63+
64+
// method: function
65+
// let res = await resize(src, pureValues)
66+
67+
// method: class instance
68+
// let imageResize = new ImageResize(pureValues)
69+
// let res = await imageResize.play(src)
70+
71+
// method: advanced
72+
let imageResize = new ImageResize(pureValues)
73+
let canvas = await imageResize.get(src)
74+
canvas = await imageResize.resize(canvas)
75+
canvas = imageResize.sharpen(canvas)
76+
canvas = await ready(canvas)
77+
let res = await imageResize.output(canvas)
78+
79+
// to result output image
80+
completeResizeImage(pureValues.outputType, res)
7081
}
7182
catch(e)
7283
{
@@ -78,13 +89,13 @@ async function onSubmitForm(e)
7889
async function ready(canvas)
7990
{
8091
await sleep(1000)
81-
console.warn('ready:', imageResize.options)
92+
console.warn('ready canvas', canvas)
8293
return canvas
8394
}
8495

85-
function completeResizeImage(res)
96+
function completeResizeImage(outputType, res)
8697
{
87-
switch(imageResize.options.outputType)
98+
switch(outputType)
8899
{
89100
case 'base64':
90101
const image = new Image()

types.d.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ declare module 'image-resize' {
33
// types
44
type typeOptions = {
55
bgColor?: string
6-
format?: string
6+
width?: number
77
height?: number
8-
outputType?: string
8+
format?: 'png'|'jpg'|'webp'
9+
outputType?: 'base64'|'canvas'|'blob'
910
quality?: number
1011
reSample?: number
11-
width?: number
1212
sharpen?: number
1313
}
1414
type typeSource = string|HTMLInputElement|File|Blob
1515
type typePromiseCanvas = Promise<HTMLCanvasElement>
1616
type typeOutput = Promise<string|Blob|HTMLCanvasElement>
1717

1818
// class
19-
class ImageResize {
19+
export class ImageResize {
2020
// assets
2121
options: typeOptions
2222
// class units
@@ -29,5 +29,6 @@ declare module 'image-resize' {
2929
updateOptions(value: typeOptions): ImageResize
3030
}
3131

32-
export default ImageResize
32+
// TODO: resize 함수
33+
3334
}

0 commit comments

Comments
 (0)