이미지 파일이 주어지면 이전 학교 16 색으로 변환하는 가장 좋은 방법은 무엇입니까? 오렌지, 마젠타, 라이트 블루, 옐로우, 라임, 핑크, 그레이, 라이트 그레이, 시안, 퍼플, 블루, 브라운, 그린, 레드,미리 정의 된 16 색으로 이미지 변환
소스 팔레트로 사용할 수있는 16 개의 색상이 모두 포함 된 1x16 픽셀 이미지를 만들었지 만 사용하는데 문제가 있습니다. 내가 원하는 (16 픽셀 데이터 이미지의 색상 팔레트를 가지고 신선한 이미지에 복사)입니다 imagepalettecopy()
처럼 보이지만 코드는 I가 작동하지 않습니다 내놓았다 :
<?php
$palette = imagecreatefrompng(__DIR__ . '/palette.png');
$source = imagecreatefromjpeg(__DIR__ . '/testimage.jpg');
$source_w = imagesx($source);
$source_h = imagesy($source);
$image = imagecreate($source_w, $source_h);
imagepalettecopy($palette, $image);
imagecopy($image, $source, 0, 0, 0, 0, $source_w, $source_h);
header('Content-Type: image/png');
imagepng($image);
그냥 변환하는 것 그것의 16 색깔에 선택하거나 무언가 (나는 아주 확실하지 않다).
무엇이 잘못되었거나 잘못 되었습니까?
편집 : 내 imagepalettecopy()
전화가 거꾸로되었지만 수정해도 도움이되지 않습니다. 아래의 코멘트를 참조하십시오.
답장을 보내 주셔서 감사합니다. 아니, 원래의 많은 색상 팔레트를 유지합니다. 위의 코드는 이미지를 변경하고 색상 수를 현저하게 줄이지 만 16 가지 색상으로 줄이는 것으로 보입니다 (내 경우에는 파란색과 회색이 많음). – Viper007Bond
설명서에 imagepalettecopy (resource $ destination, resource $ source)가 있기 때문에 이상합니다. 모범적 인 소스 이미지와 결과 이미지를 질문에 추가 할 수 있습니까? – John
죄송합니다, 이전의 코멘트가 잘못되었습니다. 내 코드에서 버그. 그러나 두 주문 (실수로 잘못된 주문과 올바른 주문)은 비슷하지만 잘못된 이미지가됩니다. 테스트 이미지 : http://www.viper007bond.com/wordpress/wp-content/uploads/2013/05/20130511-110556.jpg 올바른 순서 (이미지, 팔레트) : http://pic.armedcats.net/b/ bl/blue/2013/05/15/imagepalette.png 원본 역순 (팔레트, 이미지) : http://pic.armedcats.net/b/bl/blue/2013/05/15/paletteimage.png – Viper007Bond