최근에 갑느님이 알아먹기 쉽게 하기위한 목적으로 데모용 프로젝트를 만들어야 했다.

아무리 데모용이지만 어느정도 형태는 갖추어야 하기에..여기저기 이미지를 다른앱에서 긁어모아 

만들기 시작했다.

지금 프로젝트엔 디자이너님이 없는 관계로..


아무튼 가져온 이미지를 문제없이 잘 사용하고 있었는데(적어도 시뮬레이터에는...) 정작 디바이스에 넣어보니 

콘솔에 지저분한 에러로그를 토해내며 XCode가 반항을 하기 시작했다.

「While reading ... pngcrush caught libpng error」


분명 컴파일 에러이면서 앱은 실행되는 그런 이중적 태도를 취하면서 위에 로그대로 해당이미지는 표시하지 않는 짜증나는 현상이었다.

혹시 다른앱에서 퍼온 이미지라서 그러나? 뭔가 락이 걸려있는 이미지인가? 뒤가 구린생각에 오만가지 생각을 다봤지만

그런건 들어본적이 없기에 구글링+스택플로우 에서 찾아보기로 했다.


두시간정도 삽질하니 아래의 두가지정도의 패턴이 발견되었다.


첫번째..

해당파일이 프로젝트 리소스 파일 타겟에서 빠져있는경우.

정말 이경우라면 문제는 간단히 해결.그러나 내가 이런 초보적인 실수를 할리가 없어라고 자신없게 외치며 확인을 해보니 이문제는 아니었음.

참고로 확인방법은 해당파일을 선택한 후 오른쪽 프로파티창에 Target Membership 에서 해당 타겟을 

체크해 되어 있는지 확인하면 됨. 안되 있음 해당 타겟에 체크해면 해결.

 



그리고 두번째..

인터레이스(インタレース)가 적용된 이미지파일일 경우.


인터레이스가 존재자체가 몰랐기에 구글링 해보니 이미지 저장방식의 한종류라고 함.

간단히 예를들어 웹페이지를 열었을때 이미지가 처음에는 뿌옇게 보이다가 다운로드가 진행되면서 

점점 선명해지는 이미지.. 바로 그런이미지로 저장하는 방식이란다.


어쨋든 인터레이스로 되어 있는 이미지는 XCode에서 받아들이지 못하니 변경해주야 한다.

물론 포토샾으로 해주면 깔끔하겠지만 회사에서 준 맥에는 당연하게도 포토샾이 없고 그렇다고 gimp는 사용할 줄 모르고..

더군다나 데모용이었기 때문에 맥 기본 이미지뷰어에서 대충 해결하기로 했다.


해당파일을 이미지뷰어에서 연 후 내보내기에서 알파값속성체크를 제거후 저장한다.




근데 신기한건.. 다른 앱에서 가저온 이미지인데 왜 안된걸까? 

Posted by 악당잰 트랙백 0 : 댓글 0

댓글을 달아 주세요