- java.lang.Object
-
- java.awt.image.BandCombineOp
-
- All Implemented Interfaces:
- RasterOp
public class BandCombineOp extends Object implements RasterOp
This class performs an arbitrary linear combination of the bands in aRaster
, using a specified matrix.The width of the matrix must be equal to the number of bands in the source
Raster
, optionally plus one. If there is one more column in the matrix than the number of bands, there is an implied 1 at the end of the vector of band samples representing a pixel. The height of the matrix must be equal to the number of bands in the destination.For example, a 3-banded
Raster
might have the following transformation applied to each pixel in order to invert the second band of theRaster
.[ 1.0 0.0 0.0 0.0 ] [ b1 ] [ 0.0 -1.0 0.0 255.0 ] x [ b2 ] [ 0.0 0.0 1.0 0.0 ] [ b3 ] [ 1 ]
Note that the source and destination can be the same object.
-
-
Constructor Summary
Constructors Constructor and Description BandCombineOp(float[][] matrix, RenderingHints hints)
Constructs aBandCombineOp
with the specified matrix.
-
Method Summary
Methods Modifier and Type Method and Description WritableRaster
createCompatibleDestRaster(Raster src)
Creates a zeroed destinationRaster
with the correct size and number of bands.WritableRaster
filter(Raster src, WritableRaster dst)
Transforms theRaster
using the matrix specified in the constructor.Rectangle2D
getBounds2D(Raster src)
Returns the bounding box of the transformed destination.float[][]
getMatrix()
Returns a copy of the linear combination matrix.Point2D
getPoint2D(Point2D srcPt, Point2D dstPt)
Returns the location of the corresponding destination point given a point in the sourceRaster
.RenderingHints
getRenderingHints()
Returns the rendering hints for this operation.
-
-
-
Constructor Detail
-
BandCombineOp
public BandCombineOp(float[][] matrix, RenderingHints hints)
Constructs aBandCombineOp
with the specified matrix. The width of the matrix must be equal to the number of bands in the sourceRaster
, optionally plus one. If there is one more column in the matrix than the number of bands, there is an implied 1 at the end of the vector of band samples representing a pixel. The height of the matrix must be equal to the number of bands in the destination.The first subscript is the row index and the second is the column index. This operation uses none of the currently defined rendering hints; the
RenderingHints
argument can be null.- Parameters:
matrix
- The matrix to use for the band combine operation.hints
- TheRenderingHints
object for this operation. Not currently used so it can be null.
-
-
Method Detail
-
getMatrix
public final float[][] getMatrix()
Returns a copy of the linear combination matrix.- Returns:
- The matrix associated with this band combine operation.
-
filter
public WritableRaster filter(Raster src, WritableRaster dst)
Transforms theRaster
using the matrix specified in the constructor. AnIllegalArgumentException
may be thrown if the number of bands in the source or destination is incompatible with the matrix. See the class comments for more details.If the destination is null, it will be created with a number of bands equalling the number of rows in the matrix. No exception is thrown if the operation causes a data overflow.
- Specified by:
filter
in interfaceRasterOp
- Parameters:
src
- TheRaster
to be filtered.dst
- TheRaster
in which to store the results of the filter operation.- Returns:
- The filtered
Raster
. - Throws:
IllegalArgumentException
- If the number of bands in the source or destination is incompatible with the matrix.
-
getBounds2D
public final Rectangle2D getBounds2D(Raster src)
Returns the bounding box of the transformed destination. Since this is not a geometric operation, the bounding box is the same for the source and destination. AnIllegalArgumentException
may be thrown if the number of bands in the source is incompatible with the matrix. See the class comments for more details.- Specified by:
getBounds2D
in interfaceRasterOp
- Parameters:
src
- TheRaster
to be filtered.- Returns:
- The
Rectangle2D
representing the destination image's bounding box. - Throws:
IllegalArgumentException
- If the number of bands in the source is incompatible with the matrix.
-
createCompatibleDestRaster
public WritableRaster createCompatibleDestRaster(Raster src)
Creates a zeroed destinationRaster
with the correct size and number of bands. AnIllegalArgumentException
may be thrown if the number of bands in the source is incompatible with the matrix. See the class comments for more details.- Specified by:
createCompatibleDestRaster
in interfaceRasterOp
- Parameters:
src
- TheRaster
to be filtered.- Returns:
- The zeroed destination
Raster
.
-
getPoint2D
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
Returns the location of the corresponding destination point given a point in the sourceRaster
. IfdstPt
is specified, it is used to hold the return value. Since this is not a geometric operation, the point returned is the same as the specifiedsrcPt
.- Specified by:
getPoint2D
in interfaceRasterOp
- Parameters:
srcPt
- ThePoint2D
that represents the point in the sourceRaster
dstPt
- ThePoint2D
in which to store the result.- Returns:
- The
Point2D
in the destination image that corresponds to the specified point in the source image.
-
getRenderingHints
public final RenderingHints getRenderingHints()
Returns the rendering hints for this operation.- Specified by:
getRenderingHints
in interfaceRasterOp
- Returns:
- The
RenderingHints
object associated with this operation. Returns null if no hints have been set.
-
-
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 11/06/2005, zuletzt geändert 04/03/2020
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/java-api-rf-java/awt/image/bandcombineop.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.