PHP로 이미지 색상 추출

10462 단어 colorPHP
회사 내부와 회사 외부의 사람들은 모두 안녕하십니까.저는 2015년에 졸업하고 회사에 들어온 mekkoo입니다.
Advent Calendar의 계절입니다.거리에 색깔이 가득하네.
화면을 계속 쳐다보는데 요즘 감동적인 UI가 있어요.

최근에 아이튠즈에 탑재된...



아름답다.멋있다!
몰두할 수 있다.나는 앨범 예술을 잘 설정해야 한다는 것에 매우 신경을 쓴다.
PHP로 재현해서 미디어로 가져오고 싶은데...

PHP로 Class를 만들어 보세요!


그림 색상을 어떻게 추출하는지 생각해 봤어요.

  • 이미지를 개체로 읽기
  • php라면 imagecreatefrom*() 함수
  • 픽셀을 왼쪽에서 오른쪽으로 스캔합니까?
  • 큰 이미지의 경우 10px마다 건너뛸 수 있음
  • 최종적으로 컬러 코드의 평균값을 얻는가?
  • 실제로 해봤어요.

    <?php
    class SenseOfColor
    {
        private $filepath;
        public function __construct($filepath)
        {
            $this->filepath = $filepath;
        }
        public function getAverageColor()
        {
            //画像(今回はPNG)をオブジェクトとして読み込んで
            $img  = imagecreatefrompng($this->filepath);
            $imgX = imagesx($img); //ヨコと
            $imgY = imagesy($img); //タテのpx数を取得して
            $imgXY = $imgX*$imgY; //掛けあわせて
            $rSum = '';
            $gSum = '';
            $bSum = '';
            for ($y = 0; $y < $imgY; $y++) { //左上から右下にかけてfor文で走査
                for ($x = 0; $x < $imgX; $x++) {
                    $rgb = imagecolorat($img, $x, $y); //rgbコードを取得して
                    $r = ($rgb >> 16) & 0xFF; //赤を10進数に
                    $g = ($rgb >> 8) & 0xFF; //緑を10進数に
                    $b = $rgb & 0xFF; //青を10進数に
                    $rSum += $r; //それぞれを合算していく...
                    $gSum += $g;
                    $bSum += $b;
                }
            }
            //合算された赤(R),緑(G),青(B)をそれぞれ画像の合計px数で割り、
            //再度16進数に変換した上で出力
            return '#'.dechex($rSum/$imgXY).dechex($gSum/$imgXY).dechex($bSum/$imgXY);
        }
    }
    
    class SenseOfColorFactory
    {
        public static function create($filepath)
        {
            return new SenseOfColor($filepath);
        }
    }
    
    //任意のPNG画像を指定すると...
    $target = SenseOfColorFactory::create('img/foobar.png');
    //平均色のカラーコードを返せる
    print($target->getAverageColor());
    

    상기 코드로 실제 앨범 예술의 색 추출을 진행하다


    소비니아/스피츠


    '정몽','봄의 노래'등이 수록된 스피츠의 손꼽히는 명작이다.
    벌써 10년 전이야!올해도 끝났어...
    --->
    응, 그런대로 괜찮아

    Light Wave' 14 / V.A.


    최근에는 Ano(t)raks 음반사의 앨범을 자주 듣는다.
    인터넷에 전곡이 공개됩니다!!아주 좋은 도시 유행가집입니다.
    https://anotraks.bandcamp.com/album/light-wave-14-vol-3
    --->
    좋은 느낌!

    LDK Lounge Designers Killer / capsule


    신섭곡계 맹주 캡슐의 가장 귀여운 앨범이다.空飛ぶ都市計画 집시 스튜디오가 뮤직비디오를 제작해 화제가 되기도 했다.
    --->
    청춘 소생...

    위에 세 가지 단색이면 좋은데...


    BEST OF TRATTORIA YEARS / Bridge


    90년대 전반기에 활약했던 기타 팝 밴드가 아코디언을 울렸다.
    과거에 치어가 재적했다는 것도 알고 있다.
    --->
    어?색깔이 진해요!어렵게 연한 노란색...

    `85 / Pizzicato Five


    picaticato Five는 사사키 마미코가 보컬을 맡은 4인 구성(하지만 파이브) 시대 음원의 재판매품이다.
    최고의 비스파의 목소리를 들으면 현실을 완전히 도피할 수 있다.
    --->
    이번에는 너무 얇아!

    왜냐하면...평균 색만 취했기 때문에 색이 옹색하면 안 돼요.


    아이튠즈가 더 똑똑해!
    앞으로 추가getAverageColor() 이외의 방법으로 아이튠즈에 서서히 접근하고 싶어요.

    지금까지 제가 좋아하는 음악 소개였습니다.


    지금은 Advent Calendar 담당일 23:22입니다.

    좋은 웹페이지 즐겨찾기