2013-07-10 2 views
0

JPEG 인코딩 파일을 추상화 된 형식으로 쉽게 변환 할 수있는 npm 모듈을 찾고 있습니다. 예 : 이 형식을 사용하면 주어진 위치에서 RGBA 값을 쉽게 편집하고 Python/Java의 이미지 조작 라이브러리와 유사하게 버퍼에 다시 쓸 수 있습니다.노드 JS 용 JPEG 이미지 조작자 (JPEG 파일 덤프에서)

검색은 RGB 값 -> JPEG (https://github.com/pkrumins/node-image)에서 모듈을 생성하지만 JPEG-> RGB 모델에서는 생성하지 않습니다. 그런 모듈이 존재하니?

답변

0

그래픽 모듈의 경우 list을 기반으로하기 때문에 많은 어려움없이 바로 사용할 수 있습니다. 그리고 구글도 조용하다.
하지만.

내가 제안하는 한 가지 방법이 있습니다. 이미지를로드하고 캔버스에 그릴 때 node-canvas을 사용하십시오. 그런 다음 getImageData을 사용하여 픽셀에 액세스하여 원하는대로 처리 할 수 ​​있습니다. 캔버스 4 개 채널 (RGBA)가 않지만

, BTW JPEG은 채널 만 RGB 없다.

0

당신은 http://aheckmann.github.io/gm/

결과 '형식'과 RGBA로 변환 GraphicsMagick를 사용하는 것은 쉬운 조작을위한 일반 RGBA 스트림입니다.

같은 모듈을 사용하여 원하는 형식으로 결과를 내 보냅니다.

0

감사합니다. 결국, 나는 포기했다.

나를 위해 일한 것은 기존 터미널 유틸리티에 대한 래퍼를 작성하고 서버 스크립트에서 호출하는 것이 었습니다. 잘 작동합니다! (:

1

옵션 1 : jpeg-js

// First load Image 
var jpegData = fs.readFileSync('grumpycat.jpg'); 

// Decode Image 
var rawImageData = jpeg.decode(jpegData); 

// rawImageData => 
// { 
// data: [<red>, <green>, <blue>, <alpha>, <red>, <green>, <blue>, <alpha> ...] 
// width: 400 
// height: 300 
// } 

// Encode Image 
jpegData = jpeg.encode(rawImageData, 50); 

옵션 2 : 사용 html5-canvas

function getImageData(url, callback){ 
    var canvas = document.getElementById('myCanvas'); 
    var context = canvas.getContext('2d'); 
    var img = new Image(); 
    img.onload = function(){ 
     context.drawImage(this, this.width, this.height); 
     callback(context.getImageData(0, 0, this.width, this.height)) 
    } 
    img.crossOrigin = 'Anonymous'; 
    img.src = url; 
} 


getImageData('<url-to-img>',function(imgData){ 
    console.log(imgData); 
});