none
CImage 의 정상적인 PNG 출력 RRS feed

  • 질문

  • 위와 같은 이미지입니다

    먼저 CImage 를 이용하여 하는

    CImage image;

    image.Load("background.png");

    와 GDI+ 인

    Bitmap backImgBit(L"background.png");

    또는 Image backImgBit(L"background.png");

    서로 출력값이 너무 다르게 나오네요

    CImage로 정상적으로 출력하는 방법은 없을까요?

    2012년 4월 29일 일요일 오전 9:29

답변

  • 참고적으로 PNG 포멧은 구현한 라이브러리 버전에 따라서 출력이 다르게 나옵니다.

    어떤 버전이든지 자신이 원하는 형태로 출력되지 않는다면 사용하시는 라이브러리의
    버전을 최신버전으로 바꾸어서 테스트 하시길 바랍니다.

    최근에 나온 PNG 파일을 보시면 헤더정보가 새롭게 추가된 파일들이 있는데,
    이 파일들은 기존 버전의 PNG 라이브러리로 제대로 읽지 못합니다. 심지어
    MS 로고중에 PNG 로 되어 있는것을 윈도우즈 비스타 운영체제의 그림판에서
    읽으면 회색으로 나오는 현상도 있습니다.

     
    2012년 4월 29일 일요일 오전 9:47
    중재자
  • PNG 이미지가 투명 배경 속성을 가지고 있을때, CImage 가 VC++ 버전별로
    약간의 차이가 있지만 정상적인 출력을 못하네요.
     

    1. PNG 그림을 수정할수 있다면  투명화 속성대신 투명화를 시키고 싶은 곳을
        특정 색상으로 대체하시고 TransparentBlt 를 사용하여 투명화를 하시는
        방법을 사용하셔도 됩니다.

     

    2. PNG 그림을 수정할수 없다면 GDI+ 를 사용하시던지 PNG 와 관련된 오픈 소스를
        구하시던지 하셔야겠네요. PNG 이미지 형식도 PNG 를 개발하는 그룹에서
        개발에 참고할수 있도록 소스를 오픈해 놓았으니 찾아보시면 소스를 구하실수
        있을겁니다. 오픈 라이센스로 알고 있는데, 정확한 라이센스는 소스를 받으실때
        확인해 보시는게 좋을것 같습니다.


    • 편집됨 tipswareMVP, Moderator 2012년 4월 30일 월요일 오전 11:30
    • 답변으로 표시됨 Seesoft 2012년 4월 30일 월요일 오후 1:14
    2012년 4월 30일 월요일 오전 11:29
    중재자

모든 응답

  • 참고적으로 PNG 포멧은 구현한 라이브러리 버전에 따라서 출력이 다르게 나옵니다.

    어떤 버전이든지 자신이 원하는 형태로 출력되지 않는다면 사용하시는 라이브러리의
    버전을 최신버전으로 바꾸어서 테스트 하시길 바랍니다.

    최근에 나온 PNG 파일을 보시면 헤더정보가 새롭게 추가된 파일들이 있는데,
    이 파일들은 기존 버전의 PNG 라이브러리로 제대로 읽지 못합니다. 심지어
    MS 로고중에 PNG 로 되어 있는것을 윈도우즈 비스타 운영체제의 그림판에서
    읽으면 회색으로 나오는 현상도 있습니다.

     
    2012년 4월 29일 일요일 오전 9:47
    중재자
  • 그렇다면 CImage 의 경우 변경하질 못하니 GDI+ 같은 것을 이용하는 방법밖에는 없는건가요..?

    - 추가

    해당 이미지와 같이 투명부분위에 색상 등 입혀져 있을경우 정상적인 출력이아닌

    다음과 같이 되는것을 발견했네요.

    • 편집됨 Seesoft 2012년 4월 29일 일요일 오전 10:12
    2012년 4월 29일 일요일 오전 9:54
  • PNG 이미지가 투명 배경 속성을 가지고 있을때, CImage 가 VC++ 버전별로
    약간의 차이가 있지만 정상적인 출력을 못하네요.
     

    1. PNG 그림을 수정할수 있다면  투명화 속성대신 투명화를 시키고 싶은 곳을
        특정 색상으로 대체하시고 TransparentBlt 를 사용하여 투명화를 하시는
        방법을 사용하셔도 됩니다.

     

    2. PNG 그림을 수정할수 없다면 GDI+ 를 사용하시던지 PNG 와 관련된 오픈 소스를
        구하시던지 하셔야겠네요. PNG 이미지 형식도 PNG 를 개발하는 그룹에서
        개발에 참고할수 있도록 소스를 오픈해 놓았으니 찾아보시면 소스를 구하실수
        있을겁니다. 오픈 라이센스로 알고 있는데, 정확한 라이센스는 소스를 받으실때
        확인해 보시는게 좋을것 같습니다.


    • 편집됨 tipswareMVP, Moderator 2012년 4월 30일 월요일 오전 11:30
    • 답변으로 표시됨 Seesoft 2012년 4월 30일 월요일 오후 1:14
    2012년 4월 30일 월요일 오전 11:29
    중재자