!
        \~english
        Convert image to the buffer, The image mode must be 1 and image size 
        equal to the display size image type is Python Imaging Library image.
        @param image: a PIL image object

        \~chinese
        将图像转换为缓冲区，这个图像的色彩模式必须为 1 同时图像大小必须等于显存大小，
        图像类型： PIL Image (Python Imaging Library)
        @param image: PIL图像对象

        \n \~
        @note
        <pre>
        ssd1306.setImage( aPILImage )
        ssd1306.display()
        </pre>

def setImage(self, image):
        """!
        \~english
        Convert image to the buffer, The image mode must be 1 and image size 
        equal to the display size image type is Python Imaging Library image.
        @param image: a PIL image object

        \~chinese
        将图像转换为缓冲区，这个图像的色彩模式必须为 1 同时图像大小必须等于显存大小，
        图像类型： PIL Image (Python Imaging Library)
        @param image: PIL图像对象

        \n \~
        @note
        <pre>
        ssd1306.setImage( aPILImage )
        ssd1306.display()
        </pre>
        """
        if image.mode != '1':
            raise ValueError('The image color must be in mode \"1\".')

        imgWidth, imgHeight = image.size
        if imgWidth != self.width or imgHeight != self.height:
            raise ValueError('The image must be same dimensions as display ( {0} x {1} ).' \
                .format(self.width, self.height))

        # First then shift left 
        pixByte = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80]
        bi = 0
        pixs = image.load()
        for x in range( 0, self.width ):
            for y in range( 0, self.height, 8 ):
                pixBits = 0x00
                # first then range(8)
                for py in [0,1,2,3,4,5,6,7]:
                    pixBits |= (0x00 if pixs[x, y+py] == 0 else pixByte[py])
                self._buffer[bi] = pixBits
                bi += 1