[PHP] webp 이미지를 jpg, png 로 변환

웹사이트에서 이미지 파일은 주로 jpg, png 포맷이다. 최근에 webp 라는 다소 생소한 이미지 파일이 사용되는데 webp 포맷은 구글에서 공개한 이미지 포맷이다. webp 포맷은 gif, jpg, png 포맷을 대체 가능하다는 것이 가장 큰 특징이다. php에서는 5.4 버전 이상에서 webp를 사용할 수 있지만 getimagesize 등의 일부 함수는 php 7.1 버전에서 webp 포맷을 지원하기 때문에 php 7.1 이상의 […]

Read More

[PHP] 업로드된 이미지로 파비콘(favicon) 생성하기

공개된 PHP Class를 이용해 업로드된 이미지로 부터 파비콘을 생성하는 방법이다. 사용된 PHP Class는 https://github.com/chrisbliss18/php-ico 이다. 우선 이미지 파일 업로드를 위한 폼을 코딩한다. <form name=”form-favicon” method=”post” action=”./faviconCreate.php” enctype=”multipart/form-data”> <label for=”favicon” class=”col-md-2 col-form-label”>Favicon</label> <div class=”col”> <div class=”col row”> <div> <input type=”file” name=”favicon” id=”favicon” class=”form-control-file form-control-sm pl-0″> </div> <?php if (is_file($faviconPath.’/favicon.ico’)) { ?> <div class=”ml-2 pt-1 form-check”> <input type=”checkbox” […]

Read More

nginx 외부 이미지 링크 금지 설정

이전부터 해야하는데.. 생각만 하고 있다가 드디어 작업을 했네요. ^^; 요즘은 일하는 거 빼면 만사가 귀찮아서 큰 일(?)입니다. location ~* \.(jpg|png|gif)$ { root /home/ncube/www; valid_referers none blocked ncube.net www.ncube.net; if ($invalid_referer) { return 444; } } 위 설정을 nginx.conf 파일에 추가하면 됩니다.

Read More

[PHP] EXIF 정보를 기준으로 이미지 회전하기

<?php @ini_set(‘memory_limit’, ‘512M’); $file = ‘./739588647_wa0q24l6_20131126_215400.jpg’; @$image = imagecreatefromjpeg($file) or die(‘Error opening file ‘.$file); $exif = exif_read_data($file); if(!empty($exif[‘Orientation’])) { switch($exif[‘Orientation’]) { case 8: $image = imagerotate($image,90,0); break; case 3: $image = imagerotate($image,180,0); break; case 6: $image = imagerotate($image,-90,0); break; } } header(‘Content-type: image/jpeg’); imagejpeg($image); imagedestroy($image); ?> 모바일 기기에서 사진을 게시판에 업로드할 때 사진이 정상적으로 표시되지 […]

Read More

[jQuery] 자바스크립트를 이용한 이미지 그레이스케일 변환

작업 중인 사이트에서 컬러 이미지를 그레이스케일로 변환하고 마우스 오버시 테두리와 원래 이미지가 보여야 하는 기능이 필요해서 구글링을 해본 결과 쉽게 적용할 수 있는 자바스크립트 소스가 있어 급하게 테스트용으로 코드를 작성해 봤다. 아래 이미지와 같은 기능을 구현하는 것이다. cfile8.uf.194F183C4EB7942E255FBE.js 이미지를 그레이스케일로 변환하는 자바스크립트 소스는 위 grayscale.js 파일을 다운로드 하여 사용하면 된다. 테스트에 사용한 소스코드는 아래와 같다. […]

Read More