Haziran 8, 2017

Resimlerin Hex Kodunu Alma

Resimleri Hex Koduna çevirme algoritması ile  ftp de bulunan tüm resimlerin benzer halini bulabilir ve alandan tasarruf edebilirsiniz.

Basit düzeyde görüntü işleme ve karşılaştırma için kullanabilirsiniz. Hatta veritabanına resmi işledikten sonra kaydedip daha sonra benzer resim karşılaştırması yapabilirsiniz.

    $filename = "resim.jpg";
if (getimagesize($filename)) {
list($width, $height) = getimagesize($filename);
$exploded             = explode('.', $filename);
$ext                  = $exploded[count($exploded) - 1];
if (preg_match('/jpg|jpeg/i', $ext)) {
$img = imagecreatefromjpeg($filename);
                    } else if (preg_match('/png/i', $ext)) {
                        $img = imagecreatefrompng($filename);
                    } else if (preg_match('/gif/i', $ext)) {
                        $img = imagecreatefromgif($filename);
                    } else if (preg_match('/bmp/i', $ext)) {
                        $img = imagecreatefrombmp($filename);
                    } else {
                        return 0;
                    }
                    $new_img = imagecreatetruecolor(8, 8);
                    imagecopyresampled($new_img, $img, 0, 0, 0, 0, 8, 8, $width, $height);
                    imagefilter($new_img, IMG_FILTER_GRAYSCALE);
                    $colors = array();
                    $sum    = 0;
                    for ($i = 0; $i < 8; $i++) {
                        for ($j = 0; $j < 8; $j++) {
                            $color = imagecolorat($new_img, $i, $j) & 0xff;
                            $sum += $color;
                            $colors[] = $color;
                        }
                    }
                    $avg   = $sum / 64;
                    $hash  = '';
                    $curr  = '';
                    $count = 0;
                    foreach ($colors as $color) {
                        if ($color > $avg) {
                            $curr .= '1';
                        } else {
                            $curr .= '0';
                        }
                        $count++;
                        if (!($count % 4)) {
                            $hash .= dechex(bindec($curr));
                            $curr = '';
                        }
                    }
                    $c               = $hash;
                    echo $c;
                }

 

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


Fatal error: Uncaught Error: Call to undefined method Ressio_HtmlOptimizer_Dom_Element::addChild() in /home/altiltoy/siteler/serdarakyol.com/wp-content/plugins/psn-pagespeed-ninja/ress/classes/htmloptimizer/dom.php:182 Stack trace: #0 /home/altiltoy/siteler/serdarakyol.com/wp-content/plugins/psn-pagespeed-ninja/ress/classes/plugin/widgets/widgets.php(66): Ressio_HtmlOptimizer_Dom->appendScriptDeclaration('!function(e,t,n...', Array, Object(Ressio_HtmlOptimizer_Dom_Element)) #1 /home/altiltoy/siteler/serdarakyol.com/wp-content/plugins/psn-pagespeed-ninja/ress/classes/plugin/widgets/widgets.php(151): Ressio_Plugin_Widgets->injectJsLoader(Object(Ressio_HtmlOptimizer_Dom), Object(Ressio_HtmlOptimizer_Dom_Element)) #2 /home/altiltoy/siteler/serdarakyol.com/wp-content/plugins/psn-pagespeed-ninja/ress/classes/dispatcher.php(117): Ressio_Plugin_Widgets->onHtmlIterateTagSCRIPTBefore(Object(Ressio_Event), Object(Ressio_HtmlOptimizer_Dom), Object(Ressio_HtmlOptimizer_Dom_Element)) #3 /home/altiltoy/siteler/serdarakyol.com/wp-content in /home/altiltoy/siteler/serdarakyol.com/wp-content/plugins/psn-pagespeed-ninja/ress/classes/htmloptimizer/dom.php on line 182