java 上传图片图片变红
2015-11-25 17:28
423 查看
java 上传图片的时候出现图片变红的情况
原因:图片包含了一个Alpha(透明)通道,一共四个通道,jpg不支持Alpha通道,所以导致了这个现象
解决代码:
private static final int[] RGB_MASKS = {0xFF0000, 0xFF00, 0xFF};
private static final ColorModel RGB_OPAQUE =
new DirectColorModel(32, RGB_MASKS[0], RGB_MASKS[1], RGB_MASKS[2]);
File uploadedFile = new File(savePath, newFileName);
ByteStreams.copy(file.getInputStream(), new FileOutputStream(uploadedFile));
java.awt.Image i = Toolkit.getDefaultToolkit().createImage(savePath + newFileName);
PixelGrabber pg = new PixelGrabber( i, 0, 0, -1, -1, true);
pg.grabPixels();
int width = pg.getWidth(), height = pg.getHeight();
DataBuffer buffer = new DataBufferInt(( int[])pg.getPixels(), pg.getWidth() * pg.getHeight());
WritableRaster raster = Raster.createPackedRaster( buffer, width, height, width, RGB_MASKS , null );
BufferedImage img = new BufferedImage( RGB_OPAQUE,raster, false, null);
java 上传图片的时候出现图片变红的情况
原因:图片包含了一个Alpha(透明)通道,一共四个通道,jpg不支持Alpha通道,所以导致了这个现象
解决代码:
private static final int[] RGB_MASKS = {0xFF0000, 0xFF00, 0xFF};
private static final ColorModel RGB_OPAQUE =
new DirectColorModel(32, RGB_MASKS[0], RGB_MASKS[1], RGB_MASKS[2]);
File uploadedFile = new File(savePath, newFileName);
ByteStreams.copy(file.getInputStream(), new FileOutputStream(uploadedFile));
java.awt.Image i = Toolkit.getDefaultToolkit().createImage(savePath + newFileName);
PixelGrabber pg = new PixelGrabber( i, 0, 0, -1, -1, true);
pg.grabPixels();
int width = pg.getWidth(), height = pg.getHeight();
DataBuffer buffer = new DataBufferInt(( int[])pg.getPixels(), pg.getWidth() * pg.getHeight());
WritableRaster raster = Raster.createPackedRaster( buffer, width, height, width, RGB_MASKS , null );
BufferedImage img = new BufferedImage( RGB_OPAQUE,raster, false, null);
相关文章推荐
- Spring+ibatis 应用实例
- 关于Eclipse上面web项目部署时端口被占用
- Java 泛型
- Java synchronized
- java实现单链表(一)
- Java多线程用法解析
- 递归方式实现斐波那契数列&汉诺塔(java)
- eclipse经常未响应解决办法
- 1.1.9 java用二进制表示十进制整数(不用Integer.toBinaryString(N)方法)
- jfinal集成spring cxf做webservice服务
- Java_开源框架_JPinyin汉字转拼音的Java开源库
- (java)Remove Duplicates from Sorted Array
- 深入理解java异常处理机制
- (java)Binary Tree Level Order Traversal II
- clojure实现java类
- java导出Excel表格
- java动态代理
- 沫沫金-eclipse关联(引用)其他工程(项目)并编译可用
- java静态绑定和动态绑定
- 使用 Spring 3 来创建 RESTful Web Services