CI 묻고 답하기

제목 이미지 하단에 영역 추가..
카테고리 CI 2, 3
글쓴이 아이와사 작성시각 2017/01/05 19:47:10
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 20719   RSS

크기가 10MB 가까이 되는 큰 이미지 하단에 저작권관련 이미지를 추가(?) 합성(?) 하려고 합니다.

저작권 관련 이미지는 높이가 90px 정도 되구요.

기존 이미지 하단에 90px정도 여백을 만들고 거기에 저작권 관련 이미지를 워터마크를 이용해서 넣어보려고 했습니다.

 

문제는..

90px 정도 되는 여백을 만들때 image_lib->crop() 을 사용했는데

이 때 이미지가 너무 크다보니 메모리 부족으로 오류가 떠버리네요

웹호스팅 환경에서 작동해야 되는거라 서버관련 설정은 불가합니다..

 

소스를 보니  imagecreatetruecolor 이 함수가 작동할 때 메모리가 터져버리던데

다른 방법은 없을까요?

 


 
 다음글 .htaccess에서 https 설정... (1)
 이전글 컨트롤러에 서브디렉토리의 index를 열 수 있는 방법... (1)

댓글

슘님 / 2017/01/06 09:35:15 / 추천 0

이미지를 압축한 후 crop()을 해보면 어떨까요?

bool imagejpeg ( resource $image [, mixed $to [, int $quality ]] )

 

아이와사 / 2017/01/06 09:45:54 / 추천 0

@ 슘님

압축을 하고 이미지 추가하고 압축을 풀면.. 퀄리티가 다시 돌아올까요?

상품이미지라 이미지 퀄리티를 굉장히 중요시 여깁니다..

일단 되나 한 번 시도해보겠습니다

답변감사합니다

kaido / 2017/01/06 09:57:44 / 추천 0

우선 

ini_set('memory_limit','-1');

해당 구문을 넣어 보시구요.

 

웹호스팅도 업로드 메모리 조절은 가능한 경우도 많아서 호스팅사에 문의해 보세요.

슘님 / 2017/01/06 10:01:25 / 추천 0

이미지 퀄리티를 줄이면 다시 올리지 못하는 걸로 알고 있습니다.

도움이 되시길 바래요.

아이와사 / 2017/01/06 10:44:17 / 추천 0

@kaido

알려주신 방법으로 설정하고 phpinfo로 확인해보니

로컬값은 -1 로 바뀌지만 마스터값은 128M로 설정되어있고 바뀌지 않았습니다.

그런데 이미지합성을 시도해보니 이번에는 메모리가 터지지 않네요...?!

php ini 로컬값이 마스터값을 덮어쓰기하는건가요?

 

조금 더 찾아보니 맞는것 같네요.. 꿀팁 감사합니다!!

 

@슘님

답변 감사합니다!

kaido / 2017/01/06 11:13:50 / 추천 0

네.  해결되셔서 다행입니다.

 

해당 구문은 마스터 값을 바꾸는게 아니라 php 실행시에 일시적으로 메모리 값을 최대한 제공 하라는 구문입니다.

파일 업로드나 엑셀 관련 작업시에는 의례 넣는 구문입니다.

물론 php ini 설정을 잡을수 있다면 설정해  두는게 더 좋겠지요.

변종원(웅파) / 2017/01/06 12:00:23 / 추천 0

-1은 제한을 없애는 것이라 잘못 사용할 경우 서버가 죽을 수도 있습니다. 

기본 128M로 잡혀있으면 조금씩 값을 올려가면서 테스트해보세요.