本文整理汇总了Python中java.awt.image.BufferedImage.getRGB方法的典型用法代码示例。如果您正苦于以下问题:Python BufferedImage.getRGB方法的具体用法?Python BufferedImage.getRGB怎么用?Python BufferedImage.getRGB使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.awt.image.BufferedImage
的用法示例。
在下文中一共展示了BufferedImage.getRGB方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: indices
# 需要导入模块: from java.awt.image import BufferedImage [as 别名]
# 或者: from java.awt.image.BufferedImage import getRGB [as 别名]
class Image:
"""Holds an image of RGB pixels accessed by column and row indices (col, row).
Origin (0, 0) is at upper left."""
# QUESTION: For efficiency, should we also extract and save self.pixels (at image reading time)?
# Also make setPixel(), getPixel(), setPixels() and getPixels() work on/with self.pixels.
# And when writing, use code in current setPixels() to update image buffer, before writing it out?
# This is something to try.
def __init__(self, filename, width=None, height=None):
"""Create an image from a file, or an empty (black) image with specified dimensions."""
# Since Python does not allow constructors with different signatures,
# the trick is to reuse the first argument as a filename or a width.
# If it is a string, we assume they want is to open a file.
# If it is an int, we assume they want us to create a blank image.
if type(filename) == type(""): # is it a string?
self.filename = filename # treat is a filename
self.image = BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB) # create a dummy image
self.read(filename) # and read external image into ti
elif type(filename) == type(1): # is it a int?
# create blank image with specified dimensions
self.filename = "Untitled"
self.width = filename # holds image width (shift arguments)
self.height = width # holds image height
self.image = BufferedImage(self.width, self.height, BufferedImage.TYPE_INT_RGB) # holds image buffer (pixels)
else:
raise TypeError("Image(): first argument must a filename (string) or an blank image width (int).")
# display image
self.display = JFrame() # create frame window to hold image
icon = ImageIcon(self.image) # wrap image appropriately for displaying in a frame
container = JLabel(icon)
self.display.setContentPane(container) # and place it
self.display.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)
self.display.setTitle(self.filename)
self.display.setResizable(False)
self.display.pack()
self.display.setVisible(True)
def getWidth(self):
"""Returns the width of the image."""
return self.width
def getHeight(self):
"""Returns the height of the image."""
return self.height
def getPixel(self, col, row):
"""Returns a list of the RGB values for this pixel, e.g., [255, 0, 0]."""
# Obsolete - convert the row so that row zero refers to the bottom row of pixels.
#row = self.height - row - 1
color = Color(self.image.getRGB(col, row)) # get pixel's color
return [color.getRed(), color.getGreen(), color.getBlue()] # create list of RGB values (0-255)
def setPixel(self, col, row, RGBlist):
"""Sets this pixel's RGB values, e.g., [255, 0, 0]."""
# Obsolete - convert the row so that row zero refers to the bottom row of pixels.
#row = self.height - row - 1
color = Color(RGBlist[0], RGBlist[1], RGBlist[2]) # create color from RGB values
self.image.setRGB(col, row, color.getRGB())
def getPixels(self):
"""Returns a 2D list of pixels (col, row) - each pixel is a list of RGB values, e.g., [255, 0, 0]."""
pixels = [] # initialize list of pixels
#for row in range(self.height-1, 0, -1): # load pixels from image
for row in range(0, self.height): # load pixels from image
pixels.append( [] ) # add another empty row
for col in range(self.width): # populate row with pixels
# RGBlist = self.getPixel(col, row) # this works also (but slower)
color = Color(self.image.getRGB(col, row)) # get pixel's color
RGBlist = [color.getRed(), color.getGreen(), color.getBlue()] # create list of RGB values (0-255)
pixels[-1].append( RGBlist ) # add a pixel as (R, G, B) values (0-255, each)
# now, 2D list of pixels has been created, so return it
return pixels
def setPixels(self, pixels):
"""Sets image to the provided 2D list of pixels (col, row) - each pixel is a list of RGB values, e.g., [255, 0, 0]."""
self.height = len(pixels) # get number of rows
self.width = len(pixels[0]) # get number of columns (assume all columns have same length
#for row in range(self.height-1, 0, -1): # iterate through all rows
for row in range(0, self.height): # iterate through all rows
for col in range(self.width): # iterate through every column on this row
#.........这里部分代码省略.........