일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 가상 DOM
- signIn
- 프로그래머스
- yml
- API Gateway
- react-xml-parser
- react DOM
- Route53
- cognito
- xlsx
- react-admin
- electron
- jimp
- react
- readableStream
- domtoimage
- zerocho
- axios
- window.postMessage
- TypeScript
- icrawler
- JavaScript
- dynamodb
- AWS
- electron-builder
- timeinput
- node
- react-sortable-hoc
- gitignore
- react-hook-form
Archives
- Today
- Total
꾸준히 공부하는 개발자
[Node.js] Jimp crop을 이용하여, 사진 자르기 본문
큰 이미지를 규격에 750 사이즈를 맞춰 잘라 앱에 효율적으로 보이게끔 하고 싶어서 jimp내의 crop이라는 함수를 사용했다.
crop(x,y,w,h) 으로
사진 왼쪽위가 0,0 기준이다.
또 이미지가 잘려서 리턴되는게 아니라 원본이 이미지가 바뀌는 거라서 처음에 깊은복사로 cloneDeep을 사용했지만,
너무 무거워서 찾아보니 img.clone() 을 이용하니 한결 가벼워졌다.
export const cutImages = async (options, data) => {
const cutImage = await Promise.all(options.data.images.map(async (image) => {
let imageArray = []
if (image.rawFile) {
const rawFile = image
let longImageResize = await Jimp.read(rawFile.rawFile.preview)
longImageResize.resize(750, Jimp.AUTO)
const count = Math.ceil(longImageResize.bitmap.height / 750)
console.log(count)
for (let i = 0; i < count; i++) {
const cropImage = longImageResize.clone()
if (i === count - 1) cropImage.crop(0, i * 750, 750, longImageResize.bitmap.height % 750)
else cropImage.crop(0, i * 750, 750, 750)
const buffer = await cropImage.getBufferAsync(rawFile.rawFile.type)
await cropImage.getBufferAsync(rawFile.rawFile.type)
const newRawFile = {rawFile: {preview: buffer, type: image.rawFile.type}}
imageArray.push(newRawFile)
}
} else {
imageArray = image
}
return imageArray
}))
options.data.images = cutImage
options.data.images = options.data.images.flat()
return options
}
'Node.js' 카테고리의 다른 글
[Node.js] ReadableStream 을 이용한 dblp.xml 파일 받아오기 (0) | 2019.12.20 |
---|---|
[Node.js] bluebird.js Promise (concurrency) (0) | 2019.12.18 |
[Node.js] Jimp 이용하여 비율에 맞게 resize (0) | 2019.11.18 |
[Node.js] local에서 blob으로 오는 xlsx 읽기 (0) | 2019.11.09 |
[Node.js] xlsx를 이용하여 excel 다운로드 (0) | 2019.11.09 |
Comments