def METHOD_NAME(self):
    height = 0
    width = 0
    if isJython():
        image = ImageIO.read(File(self.image_path))
        height = image.getHeight()
        width = image.getWidth()
        newImage = BufferedImage(
            self.hash_size, self.hash_size, BufferedImage.TYPE_INT_ARGB
        )
        g = newImage.createGraphics()
        g.setRenderingHint(
            RenderingHints.KEY_INTERPOLATION,
            RenderingHints.VALUE_INTERPOLATION_BICUBIC,
        )
        g.setRenderingHint(
            RenderingHints.KEY_RENDERING,
            RenderingHints.VALUE_RENDER_QUALITY,
        )
        g.setRenderingHint(
            RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON,
        )
        g.drawImage(image, 0, 0, self.hash_size, self.hash_size, None)
        g.dispose()
        allchannelpixels = [[], [], [], []]
        for i in range(self.hash_size):
            for j in range(self.hash_size):
                pixel = int(newImage.getRGB(i, j))
                allchannelpixels[0].append((pixel >> 16) & 0xFF)
                allchannelpixels[1].append((pixel >> 8) & 0xFF)
                allchannelpixels[2].append((pixel) & 0xFF)
                allchannelpixels[3].append((pixel >> 24) & 0xFF)
    elif isIronPython():
        allchannelpixels = [[1], [1], [1], [0]]
        file_size = round(os.path.getsize(self.image_path))
        width = round(math.sqrt(file_size))
        height = round(math.sqrt(file_size))
    else:
        self.image = Image.open(self.image_path)
        width, height = self.image.size
        image = self.image.resize(
            (self.hash_size, self.hash_size), Image.ANTIALIAS
        )
        # image.show()
        allchannelpixels = [
            list(channel.getdata()) for channel in image.split()
        ]
    bits = []
    for pixels in allchannelpixels:
        bits.append(self.getBitString(pixels))
    return bits, width, height