Most visited

Recently visited

Added in API level 21

DngCreator

public final class DngCreator
extends Object implements AutoCloseable

java.lang.Object
   ↳ android.hardware.camera2.DngCreator


DngCreator类提供将原始像素数据作为DNG文件写入的功能。

这个类设计为与被使用RAW_SENSOR可从缓冲器CameraDevice ,或具有拜尔型的原始像素数据以其它方式由应用程序生成。 DNG元数据标签将从CaptureResult对象生成或直接设置。

DNG文件格式是一种跨平台的文件格式,用于存储来自摄像头传感器的像素数据,并采用最少的预处理。 DNG文件允许在用户定义的色彩空间中定义像素数据,并且具有关联的元数据,可以在后期处理过程中将此像素数据转换为标准的CIE XYZ色彩空间。

有关DNG文件格式和相关元数据的更多信息,请参阅 Adobe DNG 1.4.0.0 specification

Summary

Constants

int MAX_THUMBNAIL_DIMENSION

缩略图的最大宽度或高度尺寸。

Public constructors

DngCreator(CameraCharacteristics characteristics, CaptureResult metadata)

创建一个新的DNG对象。

Public methods

void close()

关闭此资源,放弃任何底层资源。

DngCreator setDescription(String description)

将用户描述字符串设置为写入。

DngCreator setLocation(Location location)

设置图像位置元数据。

DngCreator setOrientation(int orientation)

将方向值设置为写入。

DngCreator setThumbnail(Image pixels)

设置缩略图图像。

DngCreator setThumbnail(Bitmap pixels)

设置缩略图图像。

void writeByteBuffer(OutputStream dngOutput, Size size, ByteBuffer pixels, long offset)

使用当前配置的元数据将 RAW_SENSOR像素数据写入DNG文件。

void writeImage(OutputStream dngOutput, Image pixels)

使用当前配置的元数据将像素数据写入DNG文件。

void writeInputStream(OutputStream dngOutput, Size size, InputStream pixels, long offset)

使用当前配置的元数据将 RAW_SENSOR像素数据写入DNG文件。

Protected methods

void finalize()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。

Inherited methods

From class java.lang.Object
From interface java.lang.AutoCloseable

Constants

MAX_THUMBNAIL_DIMENSION

Added in API level 21
int MAX_THUMBNAIL_DIMENSION

缩略图的最大宽度或高度尺寸。

常量值:256(0x00000100)

Public constructors

DngCreator

Added in API level 21
DngCreator (CameraCharacteristics characteristics, 
                CaptureResult metadata)

创建一个新的DNG对象。

没有必要调用任何设置方法来编写格式良好的DNG文件。

DNG元数据标签将从 CaptureResult对象中的相应参数生成。

对于质量最好的DNG文件,强烈建议在支持的情况下启用镜头阴影贴图输出。 STATISTICS_LENS_SHADING_MAP_MODE

Parameters
characteristics CameraCharacteristics: an object containing the static CameraCharacteristics.
metadata CaptureResult: a metadata object to generate tags from.

Public methods

close

Added in API level 21
void close ()

关闭此资源,放弃任何底层资源。 此方法在由try -with-resources语句管理的对象上自动调用。

虽然此接口方法被声明为抛出 异常 ,但 强烈建议实现者声明 close方法的具体实现,以抛出更多特定的异常,或者在关闭操作无法失败时抛出任何异常。

此界面的实施者也强烈建议不要使用close方法抛出InterruptedException 此异常与线程的中断状态交互,如果InterruptedExceptionsuppressed,则可能会发生运行时错误行为。 更一般地说,如果它会导致异常被抑制, AutoCloseable.close方法不应该抛出它。

请注意,与close的方法Closeable ,这close 不需要方法为幂等。 换句话说, close调用这个close方法可能会有一些明显的副作用,这与Closeable.close不同,如果多次调用它, Closeable.close不会产生任何效果。 然而,我们强烈建议此接口的实施者,使他们close方法幂等。

setDescription

Added in API level 21
DngCreator setDescription (String description)

将用户描述字符串设置为写入。

这相当于设置TIFF“ImageDescription”标签 (0x010E)

Parameters
description String: the user description string.
Returns
DngCreator this DngCreator(CameraCharacteristics, CaptureResult) object.

setLocation

Added in API level 21
DngCreator setLocation (Location location)

设置图像位置元数据。

给定位置的对象必须包含至少一个有效的时间,纬度,经度和(相当于由返回的值 getTime()getLatitude()getLongitude()方法)。

Parameters
location Location: an Location object to set.
Returns
DngCreator this DngCreator(CameraCharacteristics, CaptureResult) object.
Throws
IllegalArgumentException if the given location object doesn't contain enough information to set location metadata.

setOrientation

Added in API level 21
DngCreator setOrientation (int orientation)

将方向值设置为写入。

这将被写为TIFF“方向”标签(0x0112) 调用此选项将覆盖此标签的任何先前设置。

Parameters
orientation int: the orientation value to set, one of:
Returns
DngCreator this DngCreator(CameraCharacteristics, CaptureResult) object.

setThumbnail

Added in API level 21
DngCreator setThumbnail (Image pixels)

设置缩略图图像。

Pixel data is interpreted as a YUV_420_888 image. Thumbnail images with a dimension larger than MAX_THUMBNAIL_DIMENSION will be rejected.

Parameters
pixels Image: an Image object with the format YUV_420_888.
Returns
DngCreator this DngCreator(CameraCharacteristics, CaptureResult) object.
Throws
IllegalArgumentException if the given thumbnail image has a dimension larger than MAX_THUMBNAIL_DIMENSION.

setThumbnail

Added in API level 21
DngCreator setThumbnail (Bitmap pixels)

设置缩略图图像。

像素数据将被转换为基准TIFF RGB图像,每个颜色通道8位。 Alpha通道将被丢弃。 尺寸大于MAX_THUMBNAIL_DIMENSION缩略图图片将被拒绝。

Parameters
pixels Bitmap: a Bitmap of pixel data.
Returns
DngCreator this DngCreator(CameraCharacteristics, CaptureResult) object.
Throws
IllegalArgumentException if the given thumbnail image has a dimension larger than MAX_THUMBNAIL_DIMENSION.

writeByteBuffer

Added in API level 21
void writeByteBuffer (OutputStream dngOutput, 
                Size size, 
                ByteBuffer pixels, 
                long offset)

使用当前配置的元数据将 RAW_SENSOR像素数据写入DNG文件。

原始像素数据必须具有每像素16位,并且输入必须至少包含offset + 2 * width * height)个字节。 输入的宽度和高度取自DngCreator元数据标记中设置的宽度和高度,并且通常等于SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE的宽度和高度。 在API级别23之前,这总是与SENSOR_INFO_ACTIVE_ARRAY_SIZE相同。 输入中的像素布局由SENSOR_INFO_COLOR_FILTER_ARRANGEMENT设置的报告的彩色滤光片排列(CFA)确定。 如果元数据不足以编写格式良好的DNG文件,则会引发IllegalStateException

ByteBuffer上设置的任何标记或限制都将被忽略,并将通过此方法清除。

Parameters
dngOutput OutputStream: an OutputStream to write the DNG file to.
size Size: the Size of the image to write, in pixels.
pixels ByteBuffer: an ByteBuffer of pixel data to write.
offset long: the offset of the raw image in bytes. This indicates how many bytes will be skipped in the input before any pixel data is read.
Throws
IOException if an error was encountered in the input or output stream.
IllegalStateException if not enough metadata information has been set to write a well-formatted DNG file.

writeImage

Added in API level 21
void writeImage (OutputStream dngOutput, 
                Image pixels)

使用当前配置的元数据将像素数据写入DNG文件。

要使此方法成功, Image输入必须包含 RAW_SENSOR像素数据,否则将抛出 IllegalArgumentException

Parameters
dngOutput OutputStream: an OutputStream to write the DNG file to.
pixels Image: an Image to write.
Throws
IOException if an error was encountered in the output stream.
IllegalArgumentException if an image with an unsupported format was used.
IllegalStateException if not enough metadata information has been set to write a well-formatted DNG file.

writeInputStream

Added in API level 21
void writeInputStream (OutputStream dngOutput, 
                Size size, 
                InputStream pixels, 
                long offset)

使用当前配置的元数据将 RAW_SENSOR像素数据写入DNG文件。

原始像素数据必须具有每像素16位,且输入必须至少包含offset + 2 * width * height)个字节。 输入的宽度和高度取自DngCreator元数据标记中设置的宽度和高度,并且通常等于SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE的宽度和高度。 在API级别23之前,这总是与SENSOR_INFO_ACTIVE_ARRAY_SIZE相同。 输入中的像素布局由SENSOR_INFO_COLOR_FILTER_ARRANGEMENT设置的报告的彩色滤光片排列(CFA)确定。 如果元数据不足以编写格式良好的DNG文件,则会引发IllegalStateException

Parameters
dngOutput OutputStream: an OutputStream to write the DNG file to.
size Size: the Size of the image to write, in pixels.
pixels InputStream: an InputStream of pixel data to write.
offset long: the offset of the raw image in bytes. This indicates how many bytes will be skipped in the input before any pixel data is read.
Throws
IOException if an error was encountered in the input or output stream.
IllegalStateException if not enough metadata information has been set to write a well-formatted DNG file.
IllegalArgumentException if the size passed in does not match the

Protected methods

finalize

Added in API level 21
void finalize ()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类重写finalize方法以处置系统资源或执行其他清理。

的常规协定finalize是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 finalize方法可以采取任何行动,包括使这个对象再次可用于其他线程; 然而, finalize的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。

finalize方法Object执行特殊的操作; 它只是正常返回。 Object子类可能会覆盖此定义。

Java编程语言不保证哪个线程将为任何给定对象调用finalize方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。

在针对一个对象调用了 finalize方法之后,在Java虚拟机再次确定没有任何方法可以通过尚未死亡的任何线程访问此对象之前,不会采取进一步的操作,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。

对于任何给定的对象,Java虚拟机从不会多次调用 finalize方法。

finalize方法抛出的任何异常 finalize导致此对象的终止被暂停,但会被忽略。

Throws
Throwable

Hooray!