Module java.desktop
Package java.awt

Class Image

java.lang.Object
java.awt.Image
直接已知的子类:
AbstractMultiResolutionImage, BufferedImage, VolatileImage

public abstract class Image extends Object
抽象类Image是表示图形图像的所有类的超类。图像必须以特定于平台的方式获取。
自1.0版本起:
1.0
  • Field Details

    • accelerationPriority

      protected float accelerationPriority
      加速此图像的优先级。子类可以设置不同的默认优先级,应用程序可以通过setAccelerationPriority(float)方法为特定图像设置优先级。
      自1.5版本起:
      1.5
    • UndefinedProperty

      public static final Object UndefinedProperty
      每当获取特定图像未定义的属性时,应返回UndefinedProperty对象。
    • SCALE_DEFAULT

      public static final int SCALE_DEFAULT
      使用默认的图像缩放算法。
      自1.1版本起:
      1.1
      参见:
    • SCALE_FAST

      public static final int SCALE_FAST
      选择一个图像缩放算法,该算法优先考虑缩放速度而不是缩放图像的平滑度。
      自1.1版本起:
      1.1
      参见:
    • SCALE_SMOOTH

      public static final int SCALE_SMOOTH
      选择一个图像缩放算法,该算法优先考虑图像平滑度而不是缩放速度。
      自1.1版本起:
      1.1
      参见:
    • SCALE_REPLICATE

      public static final int SCALE_REPLICATE
      使用ReplicateScaleFilter类中体现的图像缩放算法。Image对象可以自由替换执行相同算法但更有效地集成到工具包提供的图像基础设施中的不同过滤器。
      自1.1版本起:
      1.1
      参见:
    • SCALE_AREA_AVERAGING

      public static final int SCALE_AREA_AVERAGING
      使用区域平均图像缩放算法。图像对象可以自由替换执行相同算法但更有效地集成到工具包提供的图像基础设施中的不同过滤器。
      自1.1版本起:
      1.1
      参见:
  • Constructor Details

    • Image

      protected Image()
      子类调用的构造函数。
  • Method Details

    • getWidth

      public abstract int getWidth(ImageObserver observer)
      确定图像的宽度。如果宽度尚未知,则此方法返回-1,稍后将通知指定的ImageObserver对象。
      参数:
      observer - 等待图像加载的对象。
      返回:
      此图像的宽度,如果宽度尚未知,则返回-1
      参见:
    • getHeight

      public abstract int getHeight(ImageObserver observer)
      确定图像的高度。如果高度尚未知,则此方法返回-1,稍后将通知指定的ImageObserver对象。
      参数:
      observer - 等待图像加载的对象。
      返回:
      此图像的高度,如果高度尚未知,则返回-1
      参见:
    • getSource

      public abstract ImageProducer getSource()
      获取为图像生成像素的对象。此方法由图像过滤类和执行图像转换和缩放的方法调用。
      返回:
      生成此图像像素的图像生成器。
      参见:
    • getGraphics

      public abstract Graphics getGraphics()
      为绘制到离屏图像创建一个图形上下文。此方法仅适用于离屏图像。
      返回:
      用于绘制到离屏图像的图形上下文。
      抛出:
      UnsupportedOperationException - 如果对非离屏图像调用。
      参见:
    • getProperty

      public abstract Object getProperty(String name, ImageObserver observer)
      通过名称获取此图像的属性。

      各种图像格式定义了各个属性名称。如果未为特定图像定义属性,则此方法返回UndefinedProperty对象。

      如果尚未知此图像的属性,则此方法返回null,稍后将通知ImageObserver对象。

      属性名称"comment"应用于存储可作为图像描述、源或作者的描述呈现给应用程序的可选注释。

      参数:
      name - 属性名称。
      observer - 等待加载此图像的对象。
      返回:
      命名属性的值。
      抛出:
      NullPointerException - 如果属性名称为null。
      参见:
    • getScaledInstance

      public Image getScaledInstance(int width, int height, int hints)
      创建此图像的缩放版本。默认情况下,将返回一个新的Image对象,该对象将以指定的widthheight呈现图像。即使原始源图像已完全加载,新的Image对象也可以异步加载。

      如果widthheight为负数,则将替换一个值以保持原始图像尺寸的纵横比。如果widthheight都为负数,则使用原始图像尺寸。

      参数:
      width - 缩放图像的宽度。
      height - 缩放图像的高度。
      hints - 指示用于图像重采样的算法类型的标志。
      返回:
      图像的缩放版本。
      抛出:
      IllegalArgumentException - 如果widthheight为零。
      自1.1版本起:
      1.1
      参见:
    • flush

      public void flush()
      清除此Image对象正在使用的所有可重建资源。这包括正在缓存以供渲染到屏幕的像素数据,以及用于存储数据或像素的任何系统资源,如果可以重新创建这些资源。图像将重置为类似于首次创建时的状态,因此如果再次渲染图像,则必须重新创建图像数据或从其源重新获取。

      此方法如何影响特定类型的Image对象的示例:

      • BufferedImage对象保留存储其像素的主要栅格不变,但清除有关这些像素的任何缓存信息,例如上传到显示硬件以进行加速位块传输的副本。
      • 通过接受宽度和高度的Component方法创建的Image对象保留其主要像素缓冲区不变,但释放所有缓存信息,类似于对BufferedImage对象所做的操作。
      • VolatileImage对象释放其所有像素资源,包括通常存储在显示硬件上的主要副本,资源稀缺。稍后可以使用它们的validate方法恢复这些对象。
      • 通过Toolkit和Component类从文件、URL加载或由ImageProducer生成的Image对象被卸载,并释放所有本地资源。稍后在渲染时可以根据需要从其原始源重新加载这些对象,就像它们首次创建时一样。
    • getCapabilities

      public ImageCapabilities getCapabilities(GraphicsConfiguration gc)
      返回一个ImageCapabilities对象,可以查询该对象在指定GraphicsConfiguration上的能力。这使程序员可以获取有关他们创建的特定Image对象的更多运行时信息。例如,用户可能创建了一个BufferedImage,但系统在给定的GraphicsConfiguration上没有剩余视频内存用于创建该大小的图像,因此,尽管对象通常可以加速,但在此GraphicsConfiguration上却没有该功能。
      参数:
      gc - 一个GraphicsConfiguration对象。对于此参数的null值将导致获取默认GraphicsConfiguration的图像能力。
      返回:
      包含指定GraphicsConfiguration上此Image的能力的ImageCapabilities对象。
      自:
      1.5
      参见:
    • setAccelerationPriority

      public void setAccelerationPriority(float priority)
      为此图像设置关于加速的重要性的提示。此优先级提示用于与其他Image对象的优先级进行比较,以确定如何使用稀缺的加速资源,例如视频内存。如果可能加速此图像,但没有足够的资源可用于提供该加速,但通过将其他优先级较低的图像减速以释放足够的资源,那么其他图像可能会被减速以优先考虑此图像。具有相同优先级的图像按先到先服务的方式占用资源。
      参数:
      priority - 介于0和1之间(包括0和1)的值,其中较高的值表示对加速的更重要性。值为0意味着此图像永远不应加速。其他值仅用于确定相对于其他图像的加速优先级。
      抛出:
      IllegalArgumentException - 如果priority小于零或大于1。
      自:
      1.5
    • getAccelerationPriority

      public float getAccelerationPriority()
      返回加速优先级提示的当前值。
      返回:
      介于0和1之间(包括0和1)的值,表示当前优先级值
      自:
      1.5
      参见: