public void setImage(final BufferedImage bufferedImage) {
BufferedImage scaledImage = new BufferedImage(bufferedImage.getWidth(),
bufferedImage.getHeight(), BufferedImage.TYPE_INT_ARGB);//把现有的bufferedImage的颜色模式转换为DirectColorModel
Graphics2D localGraphics2D = scaledImage.createGraphics();
localGraphics2D.drawImage(bufferedImage, 0, 0, scaledImage.getWidth(),
scaledImage.getHeight(), null);
localGraphics2D.dispose();
ImageData imageData = convertToSWT(scaledImage);
//label.setImage(new Image(Display.getDefault(), imageData));
}
public static ImageData convertToSWT(BufferedImage bufferedImage) {
if (bufferedImage.getColorModel() instanceof DirectColorModel) {
DirectColorModel colorModel = (DirectColorModel) bufferedImage
.getColorModel();
PaletteData palette = new PaletteData(colorModel.getRedMask(),
colorModel.getGreenMask(), colorModel.getBlueMask());
ImageData data = new ImageData(bufferedImage.getWidth(),
bufferedImage.getHeight(), colorModel.getPixelSize(),
palette);
WritableRaster raster = bufferedImage.getRaster();
int[] pixelArray = new int[4];
for (int y = 0; y < data.height; y++) {
for (int x = 0; x < data.width; x++) {
raster.getPixel(x, y, pixelArray);
int pixel = palette.getPixel(new RGB(pixelArray[0],
pixelArray[1], pixelArray[2]));
data.setPixel(x, y, pixel);
}
}
return data;
} else if (bufferedImage.getColorModel() instanceof IndexColorModel) {
IndexColorModel colorModel = (IndexColorModel) bufferedImage
.getColorModel();
int size = colorModel.getMapSize();
byte[] reds = new byte[size];
byte[] greens = new byte[size];
byte[] blues = new byte[size];
colorModel.getReds(reds);
colorModel.getGreens(greens);
colorModel.getBlues(blues);
RGB[] rgbs = new RGB[size];
for (int i = 0; i < rgbs.length; i++) {
rgbs[i] = new RGB(reds[i] & 0xFF, greens[i] & 0xFF,
blues[i] & 0xFF);
}
PaletteData palette = new PaletteData(rgbs);
ImageData data = new ImageData(bufferedImage.getWidth(),
bufferedImage.getHeight(), colorModel.getPixelSize(),
palette);
data.transparentPixel = colorModel.getTransparentPixel();
WritableRaster raster = bufferedImage.getRaster();
int[] pixelArray = new int[1];
for (int y = 0; y < data.height; y++) {
for (int x = 0; x < data.width; x++) {
raster.getPixel(x, y, pixelArray);
data.setPixel(x, y, pixelArray[0]);
}
}
return data;
}
return null;
}
/**
* Converts an AWT image to SWT.
*
* @param image
* the image (<code>null</code> not permitted).
*
* @return Image data.
*/
/*
* public static ImageData convertAWTImageToSWT(Image image) { if (image ==
* null) { throw new IllegalArgumentException("Null 'image' argument."); }
* int w = image.getWidth(null); int h = image.getHeight(null); if (w == -1
* || h == -1) { return null; } BufferedImage bi = new BufferedImage(w, h,
* BufferedImage.TYPE_INT_RGB); Graphics g = bi.getGraphics();
* g.drawImage(image, 0, 0, null); g.dispose(); return convertToSWT(bi); }
*/
/**
* Not entirely sure this method is necessary for indicating 'no cache', but
* since the claim was specific to byte arrays, we'll do it.
*/
/*
* private Image convertToFromBytes(BufferedImage image) { try {
* ByteArrayOutputStream baos = new ByteArrayOutputStream();
* ImageIO.write(image, "png", baos); return
* Toolkit.getDefaultToolkit().createImage(baos.toByteArray()); } catch
* (Exception e) { return null; } }
*/
分享到:
相关推荐
资源分类:Python库 所属语言:Python 资源全名:imagedata-1.2.9.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
myself
本资源提供了由图像像数据转换的神器image2data,有需要的朋友可以下载哦。
跨平台将JPEG解析为ImageData。 安装 $ npm install pixel-jpg --save var pixelJpeg = require ( 'pixel-jpg' ) ; console . log ( pixelJpeg ) ; //object 原料药 pixelJpg.parse( file )-> promise.then( ...
跨平台将PNG解析为ImageData。 安装 $ npm install pixel-png --save var pixelPng = require ( 'pixel-png' ) ; console . log ( pixelPng ) ; //function 原料药 pixelPng.parse( file )-> promise.then( ...
像素Gif 跨平台将Gif解析为ImageData。安装$ npm install pixel-gif --save var pixelGif = require ( 'pixel-gif' ) ;console . log ( pixelGif ) ; //object原料药pixelGif.parse( file )-> promise.then( ...
跨平台获取ImageData 安装 用于NodeJS $ yarn add pixel # or $ npm install pixel --save 用于浏览器 < script src =" https://unpkg.com/pixel " > </ script > < script > console . log ( ...
脚步: 1) 输入输出图像的宽度和高度2) 选择要转换的图像3) 验证单色输出是否令人满意4) 单击“是,继续”以继续代码生成5) 在当前工作目录中创建一个名为“imagedata.cpp”的新文件,其中包含字节数组数据。...
转换任意颜色为RGBA格式 前端编程过程中,经常会遇到要把各种颜色格式(比如 “red”、“#F00”、“#FF0000”等)转换成RGBA格式,搜索网络也可以发现一堆的解决方案: 此处介绍一种方法: 通过canvas的像素获取...
js-imagediff 基于JavaScript / Canvas的imagediff实用程序。... toImageData(object)将图像类型对象转换为新的ImageData对象。 equal(a, b, tolerance)测试图像类型对象是否相等; 接受以像素为单位的公差。
将bmp 8位图片转换成.c格式数组(可批量转换) 数组名为imagedata0....n
ImageData到AnsiBackgroundColor 安装 $ npm install pixel pixel-to-ansi --save 应用程序接口 ansi.convert(ImageData) -> ansiBgString var pixel = require ( 'pixel' ) ; var ansi = require ( 'pixel-to-...
3.13_使用createImageData来创建ImageData,感受图像之美|使用Canvas进行像素级操作|Canvas
到数组缓冲区 以同步方式将任何二进制数据容器转换为ArrayBuffer 。 检测到的容器: 缓冲类型数组数组缓冲区视图数组缓冲区数据uri字符串base64 字符串普通字符串大批数组数组Number(以定义的长度(以字节为单位)...
Imagedata是一个python库,用于将医学图像数据读取和写入numpy数组。 Imagedata将处理多维数据。 特别是,图像数据将基于定义的标签读取DICOM 3D和4D系列并将其排序。 Imagedata将处理格式之间的几何信息。 包括以下...
在用ImageData中的planes[0]的数据初始化mat时,mat的格式应与深度帧获取的格式相对应,步进大小始终都为ImageData.pitches[0]/sizeof(uchar) 3.在用OpenCV中的mat来存储RealSense R200的深度和彩色图像时,这一步...
修改caffe源码,使image_data_layer支持多标签输入,主要用于回归任务
自动将图像转换为 CSS 这是一个实验,所以,可能你不想要,你不会在网络上使用图像作为框阴影,对吧? 所以,! ! 它是如何工作的? image2css 在canvas 元素中,并从canvas 中 (imageData 是一个大数组,包含...
此函数将 imageData 解释为高度图并将其转换为随机点立体图。 随机点立体图是一种可以通过以适当的方式观看而被感知为 3 维的图像。 有关随机点立体图的更多信息,请参阅...
图像滤镜核心依靠网络工作者来应用图像转换的小型图书馆。 有几个使用image-filter-core模块,例如... #convertImageDataToCanvasURL() 给定一个ImageData,它返回dataURL var imageFilterCore = require ( 'image-