2017-01-28 4 views
1

GraphicsMagick을 사용하여 웹 응용 프로그램에 업로드 된 이미지의 크기를 변경하고 저장합니다. 문제는 품질을 100으로 설정하더라도 이미지의 품질이 손상되고 매우보기 흉하게 보입니다.NodeJS 및 GraphicsMagick : resize() 이미지 품질이 저하됩니다.

// ... "data" is the Buffer object I obtain from the upload 
gm(data) 
    .quality(100) 
    .resize(600) 
    .write("/path/to/write", function (err) { 
     ... 
    }; 

내가 뭔가 잘못하고 있다고 생각하지만, 실수입니다 찾을 수없는

내가 사용하는 코드는 다음과 같다. 나는이 문서를 검색했는데, 여기에서 모든 질문을 검색했지만, 내 것과 같은 문제가있는 사람을 찾지 못했습니다.

감사합니다. 대단히 감사합니다!

답변

0

큰 이미지는 큰 문제와 동일합니다.

잃어버린 품질 때문 만이 아니라 프로세스에 걸리는 시간 때문일뿐만 아니라.

gm.resize({ 
    srcData : img, 
    strip : false, 
    width : 173, 
    height : "173^", 
    customArgs: [ 
    "-gravity", "center" 
    ,"-extent", "173x173" 
    ] 
}).write("/path/to/write", function (err) { 

을 ... 그리고 중첩과 concating 함수들이 그냥을 피하기 :

난 당신이 thumbnail 방법으로 그것을 할 또는 깊은 이런 방법으로 imagemagick를 사용하여 크기 조정 지정 인수에 좋습니다.

당신이 그것을
var imageMagick = gm.subClass({ imageMagick: true }); 

그런 다음 ImageMagick이 당신이 일반적으로 GM을 사용하는 것과 동일한 방법을 사용하여이 방법을 수행 할 수 있습니다 ImageMagick이를 사용합니다.

희망이 있습니다.

+0

의견을 보내 주셔서 감사합니다. 설명서에서 resize()에 대한 이러한 매개 변수를 찾지 못했습니다. 내가 더 자세히 읽을 수있는 링크 또는 무언가가 있습니까? – Piero

+0

imagemagick에서 gm을 사용하고 있기 때문에 이것은 큰 승리입니다. – locropulenton

0

또한 gm에서 이미지 품질 문제가 있었는데이 모듈을 사용했습니다. https://github.com/oliver-moran/jimp 그것은 나를 위해 일했습니다. 크기 조정 후 화질이 훨씬 좋았습니다.