我有以下代码,它创建灰度Buffered

Image,然后设置每个像素的随机颜色.

import java.awt.image.BufferedImage;

public class Main {

public static void main(String[] args) {

BufferedImage right = new BufferedImage(100, 100, BufferedImage.TYPE_BYTE_GRAY);

int correct = 0, error = 0;

for (int i = 0; i < right.getWidth(); i++) {

for (int j = 0; j < right.getHeight(); j++) {

int average = (int) (Math.random() * 255);

int color = (0xff << 24) | (average << 16) | (average << 8) | average;

right.setRGB(i, j, color);

if(color != right.getRGB(i, j)) {

error++;

} else {

correct++;

}

}

}

System.out.println(correct + ", " + error);

}

}

大约25-30%的像素出现奇怪的行为,我设置颜色,然后它具有不同于先前设置的值.我用错误的方式设置颜色吗?

最佳答案 这是你的解决方案:禁止getRGB并使用Raster(比getRGB更快更容易)或甚至更好的DataBuffer(最快但你必须处理编码):

import java.awt.image.BufferedImage;

public class Main

{

public static void main(String[] args)

{

BufferedImage right = new BufferedImage(100, 100, BufferedImage.TYPE_BYTE_GRAY);

int correct = 0, error = 0;

for (int x=0 ; x < right.getWidth(); x++)

for (int j = 0; j < right.getHeight(); j++)

{

int average = (int) (Math.random() * 255) ;

right.getRaster().setSample(x, y, 0, average) ;

if ( average != right.getRaster().getSample(x, y, 0) ) error++ ;

else correct++;

}

System.out.println(correct + ", " + error);

}

}

在你的情况下getRGB很糟糕,因为编码是一个字节数组(8位),你必须使用getRGB操作RGB值.栅格为您完成所有转换工作.

java bufferedimage颜色_java – BufferedImage意外地改变了颜色相关推荐

  1. java jbutton 文字颜色_java – 如何更改JButton的文本颜色

    我正在编写一个简单的扫雷游戏,它现在可以正常工作,但我正在研究漂亮的细节,比如让每个数字变成不同的颜色. 当我尝试在JButton上设置文本颜色时,我一直遇到错误.我可以很容易地改变文本和背景,但不能 ...

  2. java设置文本框颜色_java Swing设置文本框文字颜色和字体

    在java中文本编辑器单独设置文字的控件有个JTextPane,而通常使用的JTextArea似乎不能设置所选文字的颜色和字体. //实例化一个文本编辑的控件 JTextPane editorPane ...

  3. java进度条字体颜色_Java Swing:进度条字体颜色修改

    最近无聊想玩一玩gui,在自定义进度条时发现了一个小问题,进度条的背景颜色和前景颜色都可以使用JProgressBar本身自带的方法修改,但是前面的字体颜色却修改不了,造成修改背景颜色后字体的颜色会和 ...

  4. qt int转换成qstring_「QT界面编程实例」创建颜色下拉框并改变窗体颜色(调色板)...

    [实例]Qt创建窗体下拉框并改变窗体颜色:QPalette.QColor.QPixmap.QSize.QIcon.QStringList.QString 本例是想创建一个颜色下拉框(颜色是自动从QCo ...

  5. html改游戏聊天字体颜色,html点击按钮改变字体颜色怎么实现

    html点击按钮改变字体颜色的实现方法:1.创建一个html文件:2.在html文件中添加html代码架构:3.在body标签里面使用button标签实现一个按钮,并使用style给按钮添加样式以及使 ...

  6. java image 内存_Java BufferedImage内存消耗

    在多线程环境中询问运行时的可用内存量并不可靠,因为在测量之后内存可能会被另一个线程用完.此外,您正在使用maxMemory – usedMemory,这不是可用内存量,而是VM认为它最多可用的内容 – ...

  7. android输入时背景颜色,Button根据EditText输入状态改变背景颜色

    需求 Button随EditText输入状态改变颜色 有3个不同颜色状态, EditText未输入时,Button处于不可点击状态 EditText输入时,Button处于高亮状态 EditText输 ...

  8. html图片颜色变深,利用CSS改变图片颜色的100种方法!

    前言 "说到对图片进行处理,我们经常会想到PhotoShop这类的图像处理工具.作为前端开发者,我们经常会需要处理一些特效,例如根据不同的状态,让图标显示不同的颜色.或者是hover的时候, ...

  9. Java背景颜色怎么设成随机的_JS实现随机改变背景颜色

    JS实现随机改变背景颜色 JS实现随机改变背景颜色 使用Js实现随便点击页面某位置就能改变页面背景颜色的功能 function changeBg(){//改变背景颜色的函数 var bgColor=& ...

最新文章

  1. GitHub聊天通信开源UI框架stfalcon-studio/ChatKit使用教程
  2. bitmap数据格式
  3. STM32 基础系列教程 11 – ADC 轮询
  4. 谈谈我对服务熔断、服务降级的理解
  5. 336. Palindrome Pairs 回文对
  6. Ubuntu 查看操作系统的位数
  7. PHP CLI应用的调试原理
  8. 15个Java多线程面试题
  9. Linq常用List操作总结,ForEach、分页、交并集、去重、SelectMany等
  10. 前端学习(3059):vue+element今日头条管理-优化文章状态
  11. jQuery插件实现的页面功能介绍引导页效果
  12. [论文阅读][经典ICP] A Method For Registration Of 3D Shapes
  13. c语言中的有符号数和无符号数
  14. 命令行Terminal增加proxy开关
  15. Kotlin基础学习-入门篇
  16. 量子计算机介绍ppt,量子信息ppt
  17. 超声成像Matlab源码
  18. 博弈论(1)—— 零和与非零和
  19. MAC开机密码破解方法
  20. 京东微信、手机QQ引领社交化购物趋势

热门文章

  1. pyscripter与python的关系_【转】PyScripter启动出错:Python could not be properly initialized. We must quit....
  2. python dict函数用法_如何将python中的dict作为参数传入c函数中用c做相关的处理?...
  3. 存在于实数域的微观粒子6-放射性衰变与分类准确率
  4. android 启动服务权限,android – 当我尝试启动服务时权限被拒绝
  5. 第一章 介绍-机器学习老师板书-斯坦福吴恩达教授
  6. 1.1 回归问题-机器学习笔记-斯坦福吴恩达教授
  7. 建模案例:最优截断切割问题
  8. 基于MATLAB的RSSI定位算法仿真
  9. 生产级部署 Python 脚本,崩溃可自启!
  10. CSS之:active选择器