Example #1
0
File: sk.py Project: saknis/upelis
 def get(self):
#  img = PNGCanvas(256, 256)
  pix = [0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  pix = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
  krast=5
  starp=2
  splot = 14
  sauks = 14
  splot = 9
  sauks = 15
  istr=int(math.sqrt((splot/2)*(splot/2)+(sauks/2)*(sauks/2)))
  splot2 = istr*2
  sauks2 = istr*2
  nn=10
  plot=2*krast + nn*splot + (nn-1)*starp
  auks=2*krast + sauks;
  plot2=2*krast + nn*splot2 + (nn-1)*starp
  auks2=2*krast + sauks2;


#  img = PNGCanvas(plot, auks, [0, 0,0,0])
  img = PNGCanvas(plot2, auks2, [0, 0,0,0])
 # img = PNGCanvas(plot, auks, [0, 0,0,0])
  ss=[0,2,4,6,8,1,3,5,7,9]
  ss=[0,1,2,3,4,5,6,7,8,9]
  for i in range(0, 10):
   sx = ss[i]
#   sx = random.randrange(0, 10)
   alfa=((random.randrange(0, 90 , 5)-45)*math.pi)/180
   for y in range(1, sauks):
#    alfa=math.pi/2
#    alfa=math.pi/4
    alfa=0
    for x in range(1, splot):
      nr = sx*(splot*sauks)+(y-1)*splot+x-1
      xcor=x-splot/2 -1
      ycor=y-sauks/2-1
      istrs=math.sqrt(xcor*xcor+ycor*ycor)
#      if xcor==0:
#        if ycor < 0:
#          alfa1=-math.pi/2
#        else:
#          alfa1=-math.pi/2
#      else:
      alfa1=math.atan2(ycor,xcor)
      xcornew=istrs*math.cos(alfa1+alfa)
      ycornew=istrs*math.sin(alfa1+alfa)
      xx=int(krast+i*(starp+splot2)+splot2/2+1+xcornew)
      yy=int(krast+sauks2/2+1+ycornew)
#      xx=krast+i*(starp+splot2)+xcor+splot2/2 +1
#      yy=krast+ycor+sauks2/2 +1
      if pix[nr]==1:
#          img.point(xx, yy, [0xff, 0, 0, 0xff])
        img.point(xx, yy, [0xff, 0xfa, 0xcd, 0xff])


  self.response.headers['Content-Type'] = "image/png"
  self.response.out.write(img.dump())
Example #2
0
def grabImage():
    windows = CGWindowListCopyWindowInfo(kCGWindowListOptionAll,
                                         kCGNullWindowID)

    for window in windows:
        #print(window)
        try:
            if window['kCGWindowName'] == 'Krunker':
                print('Krunker window found!')
                print(window)

                # get window dimensions
                x = int(window['kCGWindowBounds']['X'])
                y = int(window['kCGWindowBounds']['Y'])
                width = int(window['kCGWindowBounds']['Width'])
                height = int(window['kCGWindowBounds']['Height'])
                print('Dimensions: {}'.format((x, y, width, height)))

                center = (width // 2, height // 2)
                print('Center: {}'.format(center))

                window_id = int(window['kCGWindowNumber'])
                print('Window ID: {}'.format(window_id))

                #region = CGRectMake(x, y, width, height)
                #region = CGRectInfinite

                # get img data
                img = CGWindowListCreateImage(CGRectInfinite,
                                              kCGWindowListOptionAll,
                                              window_id, kCGWindowImageDefault)
                prov = CGImageGetDataProvider(img)
                img_data = CGDataProviderCopyData(prov)
                img_width, img_height = CGImageGetWidth(img), CGImageGetHeight(
                    img)

                # create canvas based on image data pixels
                canvas = PNGCanvas(img_width, img_height)
                for x in range(img_width):
                    for y in range(img_height):
                        offset = 4 * (
                            (img_width * int(round(y))) + int(round(x)))
                        b, g, r, a = struct.unpack_from('BBBB',
                                                        img_data,
                                                        offset=offset)
                        canvas.point(x, y, color=(r, g, b, a))

                # dump canvas to png
                with open('test.png', 'wb') as f:
                    f.write(canvas.dump())

        except:
            # handle exception
            pass
Example #3
0
 def gdfontstring(self,pic,str,x,y,color):
   str="%s" % str
   x=int(x)
   y=int(y)
   data=self.__font_data
   count=self.__font_count
   start=self.__font_start
   width=self.__font_width
   height=self.__font_height
   z=0
   for c in str:
     codesim=ord(c)
     for i2 in range(0, height):
       for i3 in range(0, width):
         z0=(codesim*width*height+i2*width+i3)*2+32;
         code=data[z0:(z0+2)]
         if len(code) == 0:
           code="0"
         x0= int(code, 16)
         if x0>0:
           PNGCanvas.point(pic,(x+z*width+i3),(y+i2),color)
     z+=1
   return pic
def draw():
    from pngcanvas import PNGCanvas
    import random
    canvas = PNGCanvas(1000, 1000,
                   bgcolor=(255, 255, 255, 255),
                   color=(0, 0, 0, 255))
    circles = []
    for _ in range(15):
        circles.append(Circle(Point(random.randint(0, 1000),
                                    random.randint(0, 1000)),
                              random.randint(0, 500)))
    for circle in circles:
        for point in circle.get_points():
            canvas.point(point.x, point.y, (0x0, 0x0, 0x0, 0xFF))

    for left, right in itertools.combinations(circles, 2):
        for interseption_point in left.intercect_circle_points(right):
            for p in interseption_point.as_circle(4).get_points():
                if p is False or type(p.x) is complex:
                    continue
                canvas.point(p.x, p.y, (0xff, 0x0, 0x0, 0xff))

    with open('circles.png', 'wb') as png:
        png.write(canvas.dump())
"""

from pngcanvas import PNGCanvas
import math

HEIGHT = 500
WIDTH = int(HEIGHT * (16 / 9))

canvas = PNGCanvas(WIDTH,
                   HEIGHT,
                   bgcolor=(255, 255, 255, 255),
                   color=(0, 0, 0, 255))


def get_point(x, y):
    """
    Return (Red, Green, Blue, Alpha) for the given (x, y) point.
    """
    R = (math.sin(x / 50)**2) * 0xFF
    G = (math.cos(y / 50)**2) * 0xFF
    B = (math.sin((x - y) / 50)**2) * 0xFF
    A = 0xFF
    return (int(R), int(G), int(B), int(A))


for x in range(WIDTH):
    for y in range(HEIGHT):
        canvas.point(x, y, get_point(x, y))
with open('solution.png', 'wb') as solution:
    solution.write(canvas.dump())
Example #6
0
        # Unpack data from string into Python'y integers
        b, g, r, a = struct.unpack_from(data_format, self._data, offset=offset)

        # Return BGRA as RGBA
        return (r, g, b, a)


def get_screenshot():
    sp = ScreenPixel()
    sp.capture()
    print(sp.width, sp.height)
    print(sp.pixel(0, 0))
# 这里是解析像素点色彩
    im = Image.frombytes("RGBA", (sp.width, sp.height), sp._data)
    b, g, r, a = im.split()
    im = Image.merge("RGBA", (r, g, b, a))
    return im

if __name__ == "__main__":
  sp = ScreenPixel()
# 设置区域截图(截图区域必须符合1024的规则,不然图像会异常)
  region = CG.CGRectMake(64, 64, 128, 128)
  sp.capture(region=region)
  c = PNGCanvas(sp.width, sp.height)
  for x in range(sp.width):
    for y in range(sp.height):
      c.point(x, y, color = sp.pixel(x, y))

# 这里是保存,如果不需要就可以不用保存,区域越大,保存时间越长
  with open("test.png", "wb") as f:
    f.write(c.dump())
Example #7
0
"""

#!/usr/bin/env python3

from pngcanvas import PNGCanvas
import math

HEIGHT = 500
WIDTH = int(HEIGHT * (16 / 9))

canvas = PNGCanvas(WIDTH, HEIGHT,
                   bgcolor=(255, 255, 255, 255),
                   color=(0, 0, 0, 255))


def get_point(x, y):
    """
    Return (Red, Green, Blue, Alpha) for the given (x, y) point.
    """
    R = (math.sin(x / 50) ** 2) * 0xFF
    G = (math.cos(y / 50) ** 2) * 0xFF
    B = (math.sin((x - y) / 50) ** 2) * 0xFF
    A = 0xFF
    return (int(R), int(G), int(B), int(A))

for x in range(WIDTH):
    for y in range(HEIGHT):
        canvas.point(x, y, get_point(x, y))
with open('solution.png', 'wb') as solution:
    solution.write(canvas.dump())
Example #8
0
File: ttt.py Project: saknis/upelis
 def get(self):
#  f = open("ttt.zip", "rb")

  bio1_b64 = \
  """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
  AAAASUVORK5CYII=
  """
  png1_b64 = \
  """iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAABnRSTlP///////+evUsyAAADtElE
  QVR42u3YgY0DQQzDQPdftLFdGAtwiCsglqhP7mcHaGMDqJtvA6j/3bcB1H/12ADqv/ltAPU3XhtA
  134bQN1+G0DdfhtA3X4bQN1+G0DdfhtA3X4bQN1+G0DdfhtA3X4bQN1+G0DdfhtA3X4bQN1+G0Dd
  fhtA3X4bAPdsAKyzAfDNBlA3zQZQd8wGULfLBlD3ygZQN8oGUHfJBlC3yAZQ98cGUDfHBlB3xgZQ
  t8UGUPfEBlA3xAZQd8MGULfCBlD3wQZQN8EGsO6H9qUAvcsCGpcIdC0XaFk60K+MoFlJQafygjal
  Bj3KDhqUIHQnR2hNmtCXTKEpyUJH8oV2pAy9yBoakTh0IXdoQfqQvw4geU1A5vqAtLUCOesGEtYQ
  ZKsnSFVbkKfOIEnNQYb6kx60KDfoUmLQqKygVylBu/KBjiUDTcsE+pYGtC4H6F4CYIDbwQNXgw3u
  BSdcCma4EfxwHVjiLnDFRWCMW8AbV4A9Pj845JODSewHn9gPVrEf3GI/GMZ+8Iz9YBv7wTn2g3ns
  R9o/9qO7AfajuwH2o7sB9qO7AfajuwH2o7sB9qO7AfajuwH2o7sB9qO7AfajuwH2o7sB9qO7Afaj
  uwH2n7bi8WQf/PU9oBJ0N8B+dDfAfu8AHo93gN73gBrgtxDgGwDeATwe7wD+CwT0fvfbAOpvvTbg
  HcDj8Q7Q/o+nYtC13wZQt98GULffBlC33wZQt98GULffBlC33wZQt98GULffBlC33wZQt98GULff
  BlC33wZQt98GULffBsA8GwDnbABsswHUPbMB1A2zAdTdsgHUrbIB1H2yAdRNsgHUHbIB1O2xAdS9
  sQHUjbEB1F2xAdQtsQHU/bAB1M2wAdSdsAHUbbAB1D2wAfZLALqXA7QuDehbJtC0ZKBj+UC7UoJe
  ZQWNSgy6lBu0KD3oT4bQnCShM3lCW1KFnmQLDUkYupEztCJt6EPm0ITkoQP5Q/pagNx1AYlrBLLW
  C6SsHchXR5CspiBTfUGaWoMcdQcJalB20KPUoE15QaeSgmZlBP1KB1qWC3QtEWhcFtC7FKB994MD
  LgcT3Aw+uBascCe44UIwxG3giavAFveAMy4Bc9wA/vj0YJHPDS6xH4xiP3jFfrCL/eAY+8E09oNv
  7Afr2A/usR9lA9mP7gbYj+4G2I/uBtiP7gbYj+4G2I/uBtiP7gbYj+4G2I/uBtiP7gbYj+4G2I/u
  BtiP7gbYj+4G2I/uBtiP7gbYj+4G2I/uBtiP7gbYj+wGHstS6mBKh9nJAAAAAElFTkSuQmCC
  """
  imghex=base64.decodestring(bio1_b64)
  f = cStringIO.StringIO(imghex)

#  f=cStringIO.StringIO() 
#  f.write(img)
#  img = PNGCanvas(256, 256)
  img = PNGCanvas(256, 256, [0, 0,0,0])
  img.load(f)
  f.close()
  font=GDFont()
  font.load( 'giant_w57.gd','gdfonts')
  img=GDFont.gdfontstring(font,img,"Bioritmai",5,5,[0xff, 0xff, 0, 0xff])
  font2=GDFont()
  font2.load( 'medium_w57.gd','gdfonts')
  img=GDFont.gdfontstring(font2,img,"ABCabc",5,25,[0xff, 0xff, 0, 0xff])

  for i in range(0, 256):
   img.point(i, i, [0xff, 0, 0, 0xff])
   ii = 256 - i
   img.point(ii, i, [0xff, 0, 0, 0xff])
   img.point(122, i, [0xff, 0, 0, 0xff])
   img.point(126, i, [0xff, 0, 0, 0xff])
   img.point(130, i, [0xff, 0, 0, 0xff])
   img.point(134, i, [0xff, 0, 0, 0xff])
   img.point(i, 122, [0xff, 0, 0, 0xff])
   img.point(i, 126, [0xff, 0, 0, 0xff])
   img.point(i, 130, [0xff, 0, 0, 0xff])
   img.point(i, 134, [0xff, 0, 0, 0xff])
  self.response.headers['Content-Type'] = "image/png"
  self.response.out.write(img.dump())
Example #9
0
#!/usr/bin/python
# Gets partial screenshot and saves it into PNG file.
import Quartz.CoreGraphics as cg
region = cg.CGRectMake(
    0, 0, 400, 400)  # You can also use cg.CGRectInfinite for the full screen.
image = cg.CGWindowListCreateImage(region, cg.kCGWindowListOptionOnScreenOnly,
                                   cg.kCGNullWindowID,
                                   cg.kCGWindowImageDefault)
prov = cg.CGImageGetDataProvider(image)
img_data = cg.CGDataProviderCopyData(prov)
img_width, img_height = cg.CGImageGetWidth(image), cg.CGImageGetHeight(image)

from pngcanvas import PNGCanvas
import struct
canvas = PNGCanvas(img_width, img_height)
for x in range(img_width):
    for y in range(img_height):
        # Calculate offset, based on http://www.markj.net/iphone-uiimage-pixel-color/
        offset = 4 * ((img_width * int(round(y))) + int(round(x)))
        # Pixel data is unsigned char (8bit unsigned integer), and there are for (blue,green,red,alpha).
        # Unpack data from string into Python'y integers.
        b, g, r, a = struct.unpack_from("BBBB", img_data, offset=offset)
        # Assign BGRA color as RGBA.
        canvas.point(x, y, color=(r, g, b, a))

with open("test.png", "wb") as f:
    f.write(canvas.dump())
Example #10
0
        self.width = CG.CGImageGetWidth(image)
        self.height = CG.CGImageGetHeight(image)

    def pixel(self, x, y):

        data_format = "BBBB"
        offset = 4 * ((self.width*int(round(y))) + int(round(x)))
        b, g, r, a = struct.unpack_from(data_format, self._data, offset=offset)
        return (r, g, b, a)


if __name__ == '__main__':

    sp = ScreenPixel()

    region = CG.CGRectMake(242, 440, 400, 400)
    sp.capture(region=region)

    print sp.width, sp.height
    print sp.pixel(0, 0)

    from pngcanvas import PNGCanvas
    c = PNGCanvas(sp.width, sp.height)
    for x in range(sp.width):
        for y in range(sp.height):
            c.point(x, y, color = sp.pixel(x, y))

    with open("test.png", "wb") as f:
        f.write(c.dump())