社区
Java SE
帖子详情
使用ImageIO.read读取JPG文件时,显示出来的图片会变黑?
lyan99
2009-10-29 01:35:44
最近在搞JAVA图片,遇到个很郁闷的问题,当读取图片文件时,用ImageIO.read(new File(imagePath)),结果一部分扫描的JPG文件读入后,都变黑了,就像下面的图那样
原图片 尺寸:2481*3509 大小:1.75M
但是我自己弄了几张 更大的图,都没有这个问题,不知道应该如何解决?是不是扫描出来的图片格式问题?
希望有高手来指点一下 谢谢!
...全文
1925
10
打赏
收藏
使用ImageIO.read读取JPG文件时,显示出来的图片会变黑?
最近在搞JAVA图片,遇到个很郁闷的问题,当读取图片文件时,用ImageIO.read(new File(imagePath)),结果一部分扫描的JPG文件读入后,都变黑了,就像下面的图那样 原图片 尺寸:2481*3509 大小:1.75M 但是我自己弄了几张 更大的图,都没有这个问题,不知道应该如何解决?是不是扫描出来的图片格式问题? 希望有高手来指点一下 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lyan99
2009-10-30
打赏
举报
回复
[Quote=引用 6 楼 littlemonster 的回复:]
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
public class LoadAndSave {
public static void main(String[] args) throws IOException {
String path = "images/cougar.jpg";
BufferedImage image = ImageIO.read(new File(path));
int w = image.getWidth();
int h = image.getHeight();
BufferedImage toStore = new BufferedImage(h, w, image.getType());
Graphics2D g2 = toStore.createGraphics();
double x = (h - w)/2.0;
double y = (w - h)/2.0;
AffineTransform at = AffineTransform.getTranslateInstance(x, y);
at.rotate(Math.toRadians(90), w/2.0, h/2.0);
g2.drawRenderedImage(image, at);
g2.dispose();
ImageIO.write(toStore, "BMP", new File("loadAndSave.bmp"));
}
}
[/Quote]
6楼兄弟的方法确实是可以的,但是放到我项目中就不行了。。。。难道是我项目中用到的皮肤包的问题?
结贴了 ,感谢各位啊~
lz12366007
2009-10-29
打赏
举报
回复
[Quote=引用 8 楼 lyan99 的回复:]
我把原图片用WINDOWS画图工具打开,可以正常显示,然后另存为GIF格式,用程序读入后就能显示正常的颜色。。。。
但是如果另存为JPG格式,程序读入后还是黑的
然后把那张GIF的另存为JPG,就可以正常显示...
我估计会不会是扫描件的JPG格式图片 是经过特别压缩的,然后JAVA去读的时候,像素点的颜色都和空图片时的黑色相加,导致变黑?
[/Quote]
我也正想告诉下lz呢
有事jpg格式的图片不是那么标准!!
所以读取会出错!!
试试吧!!
lyan99
2009-10-29
打赏
举报
回复
我把原图片用WINDOWS画图工具打开,可以正常显示,然后另存为GIF格式,用程序读入后就能显示正常的颜色。。。。
但是如果另存为JPG格式,程序读入后还是黑的
然后把那张GIF的另存为JPG,就可以正常显示...
我估计会不会是扫描件的JPG格式图片 是经过特别压缩的,然后JAVA去读的时候,像素点的颜色都和空图片时的黑色相加,导致变黑?
Agile牧
2009-10-29
打赏
举报
回复
[Quote=引用 4 楼 bayougeng 的回复:]
你确定原图片是好的,用java读完就变黑了么?
没这个道理啊
[/Quote]
up
littlemonster
2009-10-29
打赏
举报
回复
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
public class LoadAndSave {
public static void main(String[] args) throws IOException {
String path = "images/cougar.jpg";
BufferedImage image = ImageIO.read(new File(path));
int w = image.getWidth();
int h = image.getHeight();
BufferedImage toStore = new BufferedImage(h, w, image.getType());
Graphics2D g2 = toStore.createGraphics();
double x = (h - w)/2.0;
double y = (w - h)/2.0;
AffineTransform at = AffineTransform.getTranslateInstance(x, y);
at.rotate(Math.toRadians(90), w/2.0, h/2.0);
g2.drawRenderedImage(image, at);
g2.dispose();
ImageIO.write(toStore, "BMP", new File("loadAndSave.bmp"));
}
}
config_man
2009-10-29
打赏
举报
回复
设置一下关于颜色之类的属性看看...
bayougeng
2009-10-29
打赏
举报
回复
你确定原图片是好的,用java读完就变黑了么?
没这个道理啊
jacky68147527
2009-10-29
打赏
举报
回复
Ding
xiaozejun
2009-10-29
打赏
举报
回复
格式应该是不存在的问题
要不你在扫描入图片后 对图片的一些属性进行一下设置
看行不???
swandragon
2009-10-29
打赏
举报
回复
是不是扫描出来的图片格式问题?
jpg格式应该没问题
image
read
er java_java-无法
使用
ImageIO
.
read
(
文件
文件
)
读取
JPEG图像
我参加聚
会
有点晚了。 但是我仍然可以发布我的答案,因为所有答案都不能真正解决问题。该解决方案需要Sanselan(或现在称为Apache Commons Imaging),并且需要合理的CMYK颜色配置
文件
(.icc
文件
)。 您可以从Adobe或eci.org获得后者。基本问题是,Java开箱即用只能
读取
RGB中的JPEG
文件
。 如果您有CMYK
文件
,则需要区分常规CMYK,Adobe CMYK(...
Java
ImageIO
图片
处理后变红 解决办法记录
原因:根据网上搜罗的一大堆文章以及自己的发现,是因为原始
图片
(jpeg)带有alpha通道才
会
变红,在mac上直接
显示
简介的看到。 然后发现
使用
下面这个方式可以解决变红的问题 // 把这行换成下面的方式 BufferedImage image =
ImageIO
.
read
(originFile); // 这里是直接根据url
读取
图片
public static BufferedImage getBufferedImage(String imgUrl) throws MalformedURLExcept
Java
使用
Imageio
拆分gif
图片
时
保存的
图片
变为黑色
在拆分GIF
图片
时
,遇到最后保存的
图片
变为黑色问题。代码如下: public static void splitGif(String filename,String path){ try{ GifDecoder decoder = new GifDecoder(); decoder.
read
(filename); ...
ImageIo
类常用方法以及
图片
操作
ImageIo
类常用方法以及
图片
操作 文章目录
ImageIo
类常用方法以及
图片
操作常用方法
图片
操作结尾 常用方法 读 从图中可以看到有三个重载的方法,返回的类型都是BufferedImage 实际操作 @Test public void
imageIO
Test() { String imagePath = "D:\\test4.
jpg
&a
java解决上传压缩
图片
变红问题
问题现象: Java上传
图片
时
,对某些
图片
进行缩放、裁剪或者生成缩略图
时
会
蒙上一层红色,经过检查只要经过
ImageIO
.
read
()方法
读取
后再保存,该
图片
便已经变成红图。因此,可以推测直接原因在于
ImageIO
.
read
()方法加载
图片
的过程存在问题。 public static BufferedImage getImages(byte[] data) throws IOExc...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章