Example #1
0
    def compare(self, blob):
        greetings_query = Greeting.all().order('-date')
        greetings = greetings_query.fetch(10)
        i = 0
        ds = {}
        for greeting in greetings:
            #w, h, pixels, metadata = reader.read()
            temp = greeting.pic
            reader1 = png.Reader(bytes=temp)
            #w, h, pixels, metadata = reader.read()
            png_w1, png_h1, pixels1, info1 = reader1.asDirect()

            pixelcount = red = blue = green = 0
            #pixelcount = png_w * png_h
            i = 0
            #print i
            #print type(pixels)
            reader = png.Reader(bytes=blob)
            png_w, png_h, pixels, info = reader.asDirect()
            #print pixels
            for row in pixels:
                j = 0
                #print i
                row1 = pixels1.next()
                for pixel in png.group(row, info['planes']):
                    pixel1 = png.group(row1, info['planes'])[j]
                    red = red + abs(pixel[0] - pixel1[0])
                    green = green + abs(pixel[1] - pixel1[1])
                    blue = blue + abs(pixel[2] - pixel1[2])
                    j = j + 1
                i = i + 1
            ds[red + green + blue] = greeting
            #print "difference",pixelcount,red,green,blue
        return ds
Example #2
0
 def compare(self,blob):
     greetings_query = Greeting.all().order('-date')
     greetings = greetings_query.fetch(10)   
     i=0
     ds={}
     for greeting in greetings:
     #w, h, pixels, metadata = reader.read()
         temp=greeting.pic
         reader1 = png.Reader(bytes=temp)
         #w, h, pixels, metadata = reader.read()
         png_w1,png_h1,pixels1,info1 = reader1.asDirect()
         
         pixelcount = red = blue = green = 0
         #pixelcount = png_w * png_h
         i=0
         #print i 
         #print type(pixels)
         reader = png.Reader(bytes=blob)
         png_w,png_h,pixels,info = reader.asDirect()
         #print pixels
         for row in pixels:
             j=0
             #print i
             row1=pixels1.next()
             for pixel in png.group(row,info['planes']):
                 pixel1= png.group(row1,info['planes'])[j]
                 red   = red + abs(pixel[0]-pixel1[0])
                 green = green + abs(pixel[1]-pixel1[1])
                 blue  = blue + abs(pixel[2]-pixel1[2])
                 j=j+1
             i=i+1
         ds[red+green+blue]=greeting
         #print "difference",pixelcount,red,green,blue
     return ds
Example #3
0
    def get(self):

        url = self.request.get('url')

        # go grab the image
        result = urllib2.urlopen(url)

        # resize to a 20px thumbnail
        img = images.Image(result.read())
        img.resize(width=20, height=20)
        thumbnail = img.execute_transforms(output_encoding=images.PNG)

        # read the thumbnail
        r = png.Reader(bytes=thumbnail)
        png_w, png_h, pixels, info = r.asDirect()

        # analyze the pixel data
        pixelcount = red = blue = green = 0
        pixelcount = png_w * png_h
        for row in pixels:
            for pixel in png.group(row, info['planes']):
                red = red + pixel[0]
                green = green + pixel[1]
                blue = blue + pixel[2]

        data = {
            'url': url,
            'mean': {
                'r':
                red / pixelcount,
                'g':
                green / pixelcount,
                'b':
                blue / pixelcount,
                'hex':
                "#%02X%02X%02X" %
                (red / pixelcount, green / pixelcount, blue / pixelcount)
            }
        }

        if self.request.path == '/html':
            data['debug'] = {
                'w': png_w * 20,
                'h': png_h * 20,
            }
            path = os.path.join(os.path.dirname(__file__),
                                'templates/image.html')
            self.response.out.write(template.render(path, data))

        elif self.request.path == '/json':
            simplejson.dump(data, self.response.out)
Example #4
0
  def get(self):

      url = self.request.get('url')

      # go grab the image
      result = urllib2.urlopen(url)

      # resize to a 20px thumbnail
      img = images.Image(result.read())
      img.resize(width=20, height=20)
      thumbnail = img.execute_transforms(output_encoding=images.PNG)

      # read the thumbnail
      r = png.Reader(bytes = thumbnail)
      png_w,png_h,pixels,info = r.asDirect()

      # analyze the pixel data
      pixelcount = red = blue = green = 0
      pixelcount = png_w * png_h
      for row in pixels:
        for pixel in png.group(row,info['planes']):
          red   = red   + pixel[0]
          green = green + pixel[1]
          blue  = blue  + pixel[2]

      data = {
        'url' : url,
        'mean': {
          'r':red/pixelcount, 
          'g':green/pixelcount, 
          'b':blue/pixelcount, 
          'hex':"#%02X%02X%02X" %(red/pixelcount,green/pixelcount,blue/pixelcount)
        }
      }

      if self.request.path == '/html':
          data['debug'] = {
             'w': png_w * 20,
             'h': png_h * 20,
          }
          path = os.path.join(os.path.dirname(__file__), 'templates/image.html')
          self.response.out.write(template.render(path, data))

      elif self.request.path == '/json':
          simplejson.dump(data,self.response.out)