为什么java中我把一张图片读到一个byte数组中,然后把该数组个元素加一,再把数组还原成图片时会不行?

就是我吧一张图片读到一个byte数组px[]中,但是for(inti=0;i<px.length;i++){p[i]=(byte)(p[i]+1);}这样后用p[]去形成... 就是我吧一张图片读到一个byte数组px[]中,但是
for (int i = 0; i < px.length; i++){
p[i] = (byte) (p[i] + 1);
}这样后用p[]去形成另一张图片的时候却不行。但是下面这样还是可以的:
for (int i = 0; i < px.length; i++){
p[i] = px[i]++;
}这样后用p[]去形成另一张图片确实可以的。这是为什么?怎样弄才能让第一种方法可行?
展开
 我来答
百度网友49d1153e
2011-03-03 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:88.6万
展开全部
应该是类型转换问题,也就是说从一开始你要是使用byte,那么第一种方法是可行的,可能你是从中途把别的类型的要转换成byte,当然不行了,因为比如说,老虎一定是动物,但是动物不一定是老虎,所以你先看看你最前面的是不是定义的比byte大的类型了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaisa1028
2011-03-02 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5429
采纳率:28%
帮助的人:2568万
展开全部
写错了?
p[i] = (byte) (p[i] + 1);
你的意思是不是:
p[i] = (byte) (px[i] + 1);
更多追问追答
追问
恩,是我打错了,我的意思是p[i] = (byte) (px[i] + 1); 我程序上写的是这样的,但是不行,这是为什么?
追答
第一种方法是把px的每一位+1存到p,第二种方法是把px复制到p,所以第二种方法可以形成图片。
不同格式的图片文件会有不同的header来村信息,如果你把这个header的数据每个byte都+1就没有意义了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式