2013-07-10 7 views
8

मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं color image को संख्याओं में कैसे परिवर्तित कर सकता हूं।एक छवि को PHP के साथ अंकों में कनवर्ट करें?

उदाहरण के लिए, यदि मेरे पास figure (b) में दिखाए गए एक की तरह एक छवि है, तो मैं एक पाठ फ़ाइल में figure (a) जैसे आउटपुट कैसे प्राप्त कर सकता हूं? , 0-255 हरी:

enter image description here

+0

अब तुम, ग्रे स्तर छवि के बारे में बात कर रहे हैं अगर आप 255 (करने के लिए कि प्रत्येक पिक्सेल 0 से 3 संख्या के लिए होता है एक रंगीन छवि के लिए क्या करना चाहते हैं लाल: 0-255, हरी: 0-255, नीले : 0-255) –

+2

http://php.net/manual/en/function.imagecolorat.php इसे "php image read pixel color" के साथ आसानी से गुगल किया जा सकता है यदि आपने Google को – zerkms

+0

को आजमाया है तो क्या आप वास्तविक छवि को साझा कर सकते हैं हमें? –

उत्तर

2

मैं ले लिया क्या here जो मेहदी Karamosly अपने जवाब में बताया गया था और संशोधित यह कुछ एक छोटा सा simipiler होने के लिए और एक साधारण एचटीएमएल उत्पादन बनाया जो आप अपने आउटपुट पसंद करने के लिए संशोधित कर सकते हैं। यदि आप सुरक्षा जोड़ने की सोच रहे हैं तो आप यह सुनिश्चित करने के लिए अधिक डेटा जांच जोड़ना चाहेंगे कि यह एक फ़ाइल/असली छवि है। मैंने इसे अपने कंप्यूटर पर जांच लिया है और यह काम करता है और उम्मीद है कि यह कुछ संशोधनों के साथ आपको जो चाहिए, उसके लिए काम करेगा।

function graycolor($img){ 
    list($width, $height) = getimagesize($img); 
    $mime = pathinfo($img, PATHINFO_EXTENSION); 
    switch($mime){#use appropriate function depending on image type 
     case 'jpg': 
     case 'jpeg': 
      $im = imagecreatefromjpeg($img); 
      break; 
     case 'png': 
      $im = imagecreatefrompng($img); 
      break; 
     case 'gif': 
      $im = imagecreatefromgif($img); 
      break; 
     default: 
      #invalid type 
      exit; 
    } 
    if(!is_color($img, $im)){#$img = string; $im = resource string 
     $ret = ""; 
     for($i = 0; $i < $height; $i++){#loop height pixels 
      for($ii = 0; $ii < $width; $ii++){#loop width pixels 
       $color = imagecolorat($im, $ii, $i); 
       $color = imagecolorsforindex($im, $color); 
       $ret .= $color['red'] . " "; 
      } 
       $ret .= "\n"; 
     } 
     return $ret; 
    }else{ 
     #$ret = ""; 
     #for($i = 0; $i < $height; $i++){#loop height pixels 
      #for($ii = 0; $ii < $width; $ii++){#loop width pixels 
       #$color = imagecolorat($im, $ii, $i); 
       #$color = imagecolorsforindex($im, $color); 
       #$ret .= $color['red'] . ", " . $color['green'] . ", " . $color['blue'] . " "; 
      #} 
       #$ret .= "\n"; 
     #} 
     return "color image"; 
    } 

} 
function is_color($img, $im){ 
    $times = 10;#number of times to check image for color 
    $iscolor = false; 
    list($width, $height) = getimagesize($img); 
    for($i = 0 ; $i < $times && !$iscolor; $i++){ 
     $color = imagecolorat($im, rand(0, $width), rand(0, $height));#get random cords 
     $color = imagecolorsforindex($im, $color);#get the random color's values 
     if($color['red'] !== $color['green'] || $color['green'] !== $color['blue']){ 
      $iscolor = true; 
      break; 
     } 
    } 
    return $iscolor; 
} 

echo graycolor('color.jpg');#outputs color image 
echo graycolor('gray.jpg');#outputs numbers 
+0

विस्तृत उदाहरण के साथ मुझे यह बताने के लिए आपको बहुत बहुत धन्यवाद। इससे बहुत मदद मिली। –

+0

@ क्लास यह एक अच्छा स्पष्टीकरण है। लेकिन यह रंगीन छवियों को संख्याओं में परिवर्तित नहीं करता है। क्या आप कृपया हमें बता सकते हैं कि रंगीन छवि को संख्या में कैसे परिवर्तित करना है? –

+0

@NewGuy मैंने रंग संख्याएं प्राप्त करने के तरीके को जोड़ा है जो आपको 'आर, जी, बी' देगा और यदि आप किसी अन्य प्रारूप में संख्या चाहते हैं तो आप एसओ पर तरीकों से खोज सकते हैं। – Class

2

अब तुम, ग्रे स्तर छवि के बारे में बात कर रहे हैं अगर आप 255 (लाल करने के लिए कि प्रत्येक पिक्सेल 0 से 3 संख्या के लिए होता है एक रंगीन छवि के लिए क्या करना चाहते हैं 0- 255, नीले: 0-255)

आप ग्रे पैमाने छवि में रुचि रखते हैं एक महत्वपूर्ण नियम आप को पता है की आवश्यकता होगी है:

// एक पिक्सेल ग्रेस्केल है अगर आर = बी = जी

इस post पर आधारित है।

इस php समारोह पर एक नज़र डालें:

http://php.net/manual/en/function.imagecolorat.php

संबंधित मुद्दे