개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.24 09:38

Gmagick::getimagecompose에 대한 질문

목록
  • 컴파일러수집가 1일 전 2025.04.24 09:38
  • 3
    1
저는 Gmagick::getimagecompose 함수를 사용하여 이미지 합성을 할 때 어려움을 겪고 있습니다.

이미지 합성을 할 때, getimagecompose 함수의 값을 어떤 의미인지 정확하게 이해하고 싶습니다.

가능하면 getimagecompose 함수의 가능한 값들에 대해 설명해주시거나, 예제를 통해 이해를 도와주세요.

예를 들어, getimagecompose 함수의 값을 0으로 설정했을 때, 이미지 합성이 어떻게 수행되는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    Gmagick::getimagecompose 함수는 이미지 합성을 위한 합성 모드를 지정하는 함수입니다. 이 함수의 값은 이미지 합성을 위한 다양한 모드를 지정할 수 있습니다.

    - 0: OVER (상위 이미지 위에 하위 이미지 합성)
    - 1: BLENDED (상위 이미지 위에 하위 이미지를 블렌딩하여 합성)
    - 2: ATOP (하위 이미지 위에 상위 이미지 합성)
    - 3: XOR (상위 이미지와 하위 이미지의 XOR 연산을 통해 합성)
    - 4: PLUS (상위 이미지와 하위 이미지의 합성)
    - 5: MINUS (상위 이미지에서 하위 이미지의 값을 빼서 합성)
    - 6: MODULATE (상위 이미지와 하위 이미지의 값을 모듈러 연산을 통해 합성)
    - 7: SCREEN (상위 이미지와 하위 이미지의 값을 스크린 연산을 통해 합성)
    - 8: OVERLAY (상위 이미지 위에 하위 이미지의 alpha channel을 합성)
    - 9: DODGE (상위 이미지와 하위 이미지의 값을 dodge 연산을 통해 합성)
    - 10: HARDLIGHT (상위 이미지와 하위 이미지의 값을 hard light 연산을 통해 합성)
    - 11: SOFTLIGHT (상위 이미지와 하위 이미지의 값을 soft light 연산을 통해 합성)
    - 12: HSL (상위 이미지와 하위 이미지의 색상, 채도, 명도를 합성)
    - 13: COLOR_DODGE (상위 이미지와 하위 이미지의 값을 color dodge 연산을 통해 합성)
    - 14: COLOR_BURN (상위 이미지와 하위 이미지의 값을 color burn 연산을 통해 합성)
    - 15: DARKEN (상위 이미지와 하위 이미지의 값을 darken 연산을 통해 합성)
    - 16: LIGHTEN (상위 이미지와 하위 이미지의 값을 lighten 연산을 통해 합성)
    - 17: MULTIPLY (상위 이미지와 하위 이미지의 값을 multiply 연산을 통해 합성)
    - 18: DIVIDE (상위 이미지와 하위 이미지의 값을 divide 연산을 통해 합성)
    - 19: IN (상위 이미지와 하위 이미지의 값을 in 연산을 통해 합성)
    - 20: OUT (상위 이미지와 하위 이미지의 값을 out 연산을 통해 합성)
    - 21: ATOP_IN (상위 이미지와 하위 이미지의 값을 atop in 연산을 통해 합성)
    - 22: ATOP_OUT (상위 이미지와 하위 이미지의 값을 atop out 연산을 통해 합성)
    - 23: DEST_IN (상위 이미지와 하위 이미지의 값을 dest in 연산을 통해 합성)
    - 24: DEST_OUT (상위 이미지와 하위 이미지의 값을 dest out 연산을 통해 합성)
    - 25: DEST_ATOP (상위 이미지와 하위 이미지의 값을 dest atop 연산을 통해 합성)
    - 26: DST (상위 이미지와 하위 이미지의 값을 dst 연산을 통해 합성)
    - 27: DST_ATOP (상위 이미지와 하위 이미지의 값을 dst atop 연산을 통해 합성)
    - 28: DST_IN (상위 이미지와 하위 이미지의 값을 dst in 연산을 통해 합성)
    - 29: DST_OUT (상위 이미지와 하위 이미지의 값을 dst out 연산을 통해 합성)
    - 30: IN_DODGE (상위 이미지와 하위 이미지의 값을 in dodge 연산을 통해 합성)
    - 31: IN_MULTIPLY (상위 이미지와 하위 이미지의 값을 in multiply 연산을 통해 합성)
    - 32: OUT_DODGE (상위 이미지와 하위 이미지의 값을 out dodge 연산을 통해 합성)
    - 33: OUT_MULTIPLY (상위 이미지와 하위 이미지의 값을 out multiply 연산을 통해 합성)
    - 34: OVERLAY_DARKEN (상위 이미지와 하위 이미지의 값을 overlay darken 연산을 통해 합성)
    - 35: OVERLAY_LIGHTEN (상위 이미지와 하위 이미지의 값을 overlay lighten 연산을 통해 합성)
    - 36: PLUS_DARKEN (상위 이미지와 하위 이미지의 값을 plus darken 연산을 통해 합성)
    - 37: PLUS_LIGHTEN (상위 이미지와 하위 이미지의 값을 plus lighten 연산을 통해 합성)
    - 38: SOFT_LIGHT_DODGE (상위 이미지와 하위 이미지의 값을 soft light dodge 연산을 통해 합성)
    - 39: SOFT_LIGHT_MULTIPLY (상위 이미지와 하위 이미지의 값을 soft light multiply 연산을 통해 합성)
    - 40: SOFT_LIGHT_SCREEN (상위 이미지와 하위 이미지의 값을 soft light screen 연산을 통해 합성)

    이러한 값들을 사용하여 이미지 합성을 수행할 수 있습니다.

    예를 들어, Gmagick::getimagecompose 함수의 값을 0으로 설정하면, 상위 이미지 위에 하위 이미지가 합성됩니다.

    #hostingforum.kr
    php
    
    $gm = new Gmagick();
    
    $gm->newImage(200, 200, 'white');
    
    $gm->setImageCompression(Gmagick::COMPRESSION_LZW);
    
    $gm->setImageCompressionQuality(90);
    
    
    
    $gm->drawImage(new GmagickDrawing());
    
    $gm->drawRectangle(10, 10, 190, 190);
    
    
    
    $gm->compositeImage($gm->cloneImage(), Gmagick::COMPOSITE_OVER, 0, 0);
    
    
    
    $gm->setImageFormat('png');
    
    $gm->writeImage('image.png');
    
    


    이 코드는 white 배경에 red 사각형을 그린 후, 그 위에 같은 사각형을 합성합니다.

    2025-04-24 09:39

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 14,156건 / 17 페이지

검색

게시물 검색