public static Picture create(int width, int height, ColorSpace colorSpace) { return createCropped(width, height, colorSpace, null); }
public static Picture createCroppedHiBD(int width, int height, int lowBitsNum, ColorSpace colorSpace, Rect crop) { Picture result = createCropped(width, height, colorSpace, crop); if (lowBitsNum <= 0) return result; byte[][] data = result.getData(); int nPlanes = data.length; byte[][] lowBits = new byte[nPlanes][]; for (int i = 0, plane = 0; i < nPlanes; i++) { lowBits[plane++] = new byte[data[i].length]; } result.setLowBits(lowBits); result.setLowBitsNum(lowBitsNum); return result; }
public static BufferedImage toBufferedImage(Picture src) { if (src.getColor() != ColorSpace.BGR) { Picture bgr = Picture.createCropped(src.getWidth(), src.getHeight(), ColorSpace.BGR, src.getCrop()); if (src.getColor() == ColorSpace.RGB) { new RgbToBgr().transform(src, bgr); } else { Transform transform = ColorUtil.getTransform(src.getColor(), ColorSpace.RGB); transform.transform(src, bgr); new RgbToBgr().transform(bgr, bgr); } src = bgr; } BufferedImage dst = new BufferedImage(src.getCroppedWidth(), src.getCroppedHeight(), BufferedImage.TYPE_3BYTE_BGR); if (src.getCrop() == null) toBufferedImage(src, dst); else toBufferedImageCropped(src, dst); return dst; }
public static BufferedImage toBufferedImage(Picture src, DemuxerTrackMeta.Orientation orientation) { if (src.getColor() != ColorSpace.BGR) { Picture bgr = Picture.createCropped(src.getWidth(), src.getHeight(), ColorSpace.BGR, src.getCrop()); if (src.getColor() == ColorSpace.RGB) { new RgbToBgr().transform(src, bgr); } else { Transform transform = ColorUtil.getTransform(src.getColor(), ColorSpace.RGB); transform.transform(src, bgr); new RgbToBgr().transform(bgr, bgr); } src = bgr; } BufferedImage dst = new BufferedImage(src.getCroppedWidth(), src.getCroppedHeight(), BufferedImage.TYPE_3BYTE_BGR); if (src.getCrop() == null) toBufferedImage(src, dst); else toBufferedImageCropped(src, dst); if (orientation.equals(DemuxerTrackMeta.Orientation.D_90)) return rotate90ToRight(dst); else if (orientation.equals(DemuxerTrackMeta.Orientation.D_180)) return rotate180(dst); else if (orientation.equals(DemuxerTrackMeta.Orientation.D_270)) return rotate90ToLeft(dst); return dst; }