当前位置: 首页 > news >正文

广东省网站设计与开发百度商桥接入网站

广东省网站设计与开发,百度商桥接入网站,做网站 做好把我踢开,门店会员管理系统appColorConvertOp java.awt.image包下面有个类java.awt.image.ColorConvertOp,类名直译就是”颜色转换操作”。 顾名思义,它的作用就是将一个色彩空间(color space)的图像转换为另一个色彩空间的图像。有了这个神器我们就能轻易的将一张彩色图你像转换成灰度(gray)或其他色彩空间…ColorConvertOp java.awt.image包下面有个类java.awt.image.ColorConvertOp,类名直译就是”颜色转换操作”。 顾名思义,它的作用就是将一个色彩空间(color space)的图像转换为另一个色彩空间的图像。有了这个神器我们就能轻易的将一张彩色图你像转换成灰度(gray)或其他色彩空间图像。 代码非常简单,只要一行。 public BufferedImage toGray(BufferedImage srcImg){ return new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null).filter(srcImg, null);}依此类推你可以参照ColorConvertOp的参数说明将图像转为其他格式。 java.awt.color.ColorSpace中列出了很多支持的色彩空间定义TYPE_RGB,TYPE_CMYK,TYPE_HSV,TYPE_YCbCr…. Raster.getDataElements 有时我们通过ImageIO得到解码后的图像数据对象(BufferedImage)以后,需要获取图像矩阵的裸数据(即一个存储图像数据的byte数组)。 BufferedImage中提供了一个getRGB()方法它返回的是一个ARGB格式int[]数组(每个int型元素的4个字节分别代表一个像素的Alpha,Red,Green,Blue四个通道) 如果你要从这个方法获取RGB的数组你还得自己写转换代码 /*** 返回图像的RGB格式字节数组* param image* return*/public static byte[] getMatrixRGB(BufferedImage image){int w image.getWidth();int h image.getHeight();int[] intArray new int[w * h];byte[] matrixRGB new byte[w * h * 3];image.getRGB(0, 0, w, h, intArray, 0, w);// ARGB-RGBfor(int i0,b0;iintArray.length;i){matrixRGB[b](byte) (matrixRGB[i]0x000000FF);matrixRGB[b](byte) ((matrixRGB[i]0x0000FF00)8);matrixRGB[b](byte) ((matrixRGB[i]0x00FF0000)16);}return matrixRGB;}好烦呐我以前就是这么干的真的没有提供更好的方法吗 不是没有更好的方法而是我学艺不精没找到而已。 在仔细研究了BufferedImage的代码之后才明白getRGB()只是BufferedImage为默认 RGB 颜色模型 (TYPE_INT_ARGB)提供的一个便利性封装。 通过getRGB()源码可以知道BufferedImage对象中真正的图像数据是由成员对象raster(java.awt.image.WritableRaster)管理。而WritableRaster是java.awt.image.Raster的子类。Raster中getDataElements方法可以我们所需要的字节数组。 还以前面图像转灰度举例如果要从灰度图像中获取图像矩阵的字节数组,代码示例如下 /*** 获取灰度图像的字节数组* param image* return*/public static byte[] getMatrixGray(BufferedImage image) {// 转灰度图像BufferedImage grayImage new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY); new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null).filter(image, grayImage);// getData方法返回BufferedImage的raster成员对象return (byte[]) grayImage.getData().getDataElements(0, 0, image.getWidth(), image.getHeight(), null); }注意这里return语句使用了(byte[])强制类型转换因为getDataElements返回的是打开声明 java.lang.Object对象。 也就是说getDataElements返回的未必是byte[]类型为什么呢看下面getDataElements方法的说明 看不懂没关系我们可以看到这里的返回的类型可能是TYPE_BYTE,TYPE_USHORT,TYPE_INT,TYPE_SHORT,TYPE_FLOAT,TYPE_DOUBLE。并不一定是byte。 那么问题来了如何控制返回的数组类型是byte[]呢 同样我们可以使用前面的ColorConvertOp对象进行转换。 比如我们需要得到图像的RGB数据: /*** 获取图像RGB格式数据* param image* return*/public static byte[] getMatrixRGB(BufferedImage image){if(image.getType()!BufferedImage.TYPE_3BYTE_BGR){// 转sRGB格式BufferedImage rgbImage new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_3BYTE_BGR);new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_sRGB), null).filter(image, rgbImage);// 从Raster对象中获取字节数组return (byte[]) rgbImage.getData().getDataElements(0, 0, rgbImage.getWidth(), rgbImage.getHeight(), null);}else{return (byte[]) image.getData().getDataElements(0, 0, image.getWidth(), image.getHeight(), null);}}
http://www.zqtcl.cn/news/212848/

相关文章:

  • 做视频找素材的网站有哪些wordpress 合法评论
  • php网站开发程序填空题高水平网站运营托管
  • 揭东建设局网站wordpress建站后发布
  • 济南哪里有建网站制作视频的手机软件
  • 建设教育网站的国内外研究现状沧州市宇通网站建设公司
  • 大型网站开发框架有哪些厦门外贸网页设计服务
  • 开网站空间流量怎么选择公司注册咨询电话
  • 邢台网站建设基本流程网站制作公司教你怎么制作网站
  • 苏州网站建设方案外包视频网站制作教程视频
  • 呼伦贝尔市规划建设局网站wordpress 主题切换
  • 建设网站的要求吗网站怎么建立
  • 网站结构有哪些建设局平台
  • 高端网站建设公司服务好吗有哪些制作网站的公司
  • 网站整站模板下载工具淮安网站建设案例
  • 网站前台用什么做广东省网站设计师
  • 汕头网站建设公司哪个好百度公司注册地址
  • 创建网站需要什么平台wordpress 卡盟模板
  • 网站开发常用的流程肃宁网站建设公司
  • 站内关键词自然排名优化绍兴网络公司
  • 益阳网站seo免费建造公司网站
  • 网站推广报价教你免费申请个人平台
  • 企网站建设wordpress文章批量上传
  • 福州seo建站网站的icp备案信息是什么
  • 腾讯分分彩做号网站广州顶正餐饮培训学校
  • 低价网站建设制作设计公司网站怎样做地理位置定位
  • 贵州网站seo织梦网站后台默认登陆路径
  • 杭州网站设计哪家公司好百度搜索网站显示图片
  • 新乡专业做淘宝网站房地产平面设计网站
  • 三亚谁做网站做网站导航的
  • 厦门酒店网站建设建设网站文案