sourcetip

노드에서 서버 측 이미지 조작에 사용할 라이브러리를 선택합니다.JS?

fileupload 2023. 8. 11. 22:32
반응형

노드에서 서버 측 이미지 조작에 사용할 라이브러리를 선택합니다.JS?

노드에서 사용 가능한 라이브러리 목록을 많이 찾았습니다.JS wiki지만 그 중 어느 것이 더 성숙하고 더 나은 성능을 제공하는지 잘 모르겠습니다.기본적으로 다음 작업을 수행합니다.

  1. 외부 소스에서 서버로 일부 이미지 로드
  2. 그것들을 하나의 큰 캔버스에 담습니다.
  3. 그것들을 조금 베고 마스크를 씌웁니다.
  4. 필터를 한두 개 바릅니다.
  5. 최종 이미지 크기를 조정하고 이미지에 대한 링크를 제공합니다.

노드 패키지가 Linux와 Windows 모두에서 작동하는 경우 큰 이점이 있습니다.

나의 질문에 대답하기

이틀 동안 Node.js 그래픽 라이브러리를 뒤졌습니다.

노드 결합의

  • 제가 잘 알고 있기 때문에 먼저 해봤습니다.<canvas>API. 도서관 입장에서는 큰 장점입니다.
  • 쉬운 윈도우 다운로드가 없는 카이로가 필요합니다.GTK+ 디스트리뷰션에서 찾았습니다.
  • 또한 모듈 설치 시 컴파일할 네이티브 라이브러리 바인딩 코드가 필요합니다.아직 Windows로 포팅되지 않은 Node-Waf를 사용합니다.

gm

  • 성숙한
  • 윈도우즈에서 원활하게 실행됨
  • 문서는 괜찮지만 완전하지는 않습니다.어떤 API를 사용할 수 있는지 알기 위해 소스 코드를 찾아봐야 했습니다.
  • 안타깝게도 GM과 이미지를 결합하는 쉬운 방법은 없습니다.그것을 달성할 수 있는 방법이 있을지도 모르지만, 나는 그것과 함께 두 시간을 보낸 후에 하나도 찾지 못했습니다.

노드 이미지 속임수법

  • 공식 보고서에는 기본 ImageMagick 명령어가 거의 포함되어 있지 않지만 이 포크를 사용했습니다(NPM이 git 저장소에서 라이브러리를 직접 가져올 수 있다는 것은 좋은 일입니다).에 대한 바인딩이 있습니다.montage내가 필요로 하는 것을 정확하게 해줍니다.
  • ImageMagick은 Windows에서 작동하지만 상당히 느립니다.

노드-팁스

  • 엄청난 플러스: 그것은 제가 잘 아는 놀라운 빕스 라이브러리를 사용합니다.VIPS는 매우 빠르고 대용량 이미지에 최적화되어 있습니다.하드웨어 리소스를 활용하는 것은 매우 현명합니다. RAM이 많은 기기는 메모리에서 모든 처리를 수행하지만 메모리가 부족하거나 다른 애플리케이션에 필요한 경우 하드 드라이브 캐시로 전환됩니다.
  • 노드 캔버스와 마찬가지로 Node-Waf가 필요하므로 Windows에서는 아직 사용할 수 없습니다.

목록에서 다른 도서관도 살펴보았지만 대부분 미숙하거나 제 사용 사례에 맞지 않습니다.Node-Waf가 Windows로 포팅될 때 Node-Canvas 또는 Node-Vips로 마이그레이션을 시도하고 싶지만 그때까지는 노드 이미지 마법을 사용할 것입니다.

GraphicsMagick으로 gm을 확인하는 것이 좋습니다.안정적이고 기능이 풍부하며 깨끗한 API, 훌륭한 문서 및 빠른 기능을 제공합니다.

Windows 및 Linux/MacOS/BSD/...에서 모두 작동합니다.

다음은 GDI+ 기반 캔버스 구현 링크입니다.

언급URL : https://stackoverflow.com/questions/10692075/which-library-should-i-use-for-server-side-image-manipulation-on-node-js

반응형