正文
像素点运算java源代码 像素点运算java源代码是什么
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
java 中如何获取 Panel 上某个像素点的 颜色
java中获取Panel上某个像素点的像素颜色,代码如下:
public static void main(String[] args) {
//创建一个150*150,RGB高彩图,类型可自定
BufferedImage img=new BufferedImage(150, 150, BufferedImage.TYPE_INT_rgb);
//取得图形
Graphics g=img.getGraphics();
//设置黑色(black)
g.setColor(Color.BLACK);
//填充颜色
g.fillRect(0, 0, img.getWidth(), img.getHeight());
//在D盘创建个一个png格式图片
File file=new File("D:/zhidao.png");
try{
//以png方式写入,可改成jpg、gif等其它后缀图片
ImageIO.write(img, "PNG", file);
}catch (IOException e){
e.printStackTrace();
}
//D盘上就生成了一个zhidao.png的黑色图片
}
(Java程序题)输入一个5*5的矩阵(图片), 矩阵边的像素点值不变, 我的代码在下面,结果运行不行?
首先像素点运算java源代码你判断定位像素点运算java源代码的条件错了,还有就是你想输出4.2 4.8 这样的小数,你用int类型绝对会都输出4
如何用java编程实现提取一张图像每个像素点的灰度,并且按顺序输出为一串数字代码?
用个HashMap存储信息到文件像素点运算java源代码,可以像素点运算java源代码的话那么代码如下:
import java.util.*
import java.io.*
public class Test1
用java将二进制黑白像素点,画在正方形中
import java.applet.*;
import java.awt.*;
import java.awt.geom.*;
public class Text extends Applet
{
public void paint(Graphics g)
{
g.drawRect(0 ,0, 28,28);//画正方形
g.drawLine(3, 3, 9, 3);
g.drawLine(3, 3, 3, 9);
g.drawLine(5, 5, 9, 5);
g.drawLine(5, 5, 5, 9);
g.drawLine(7, 7, 9, 7);
g.drawLine(7, 7, 7, 9);
g.drawLine(8, 8, 9, 8);
g.drawLine(8, 8, 8 ,9);
g.drawLine(9, 9, 9, 9);
g.drawLine(25,3, 19, 3);
g.drawLine(25,3, 25,9);
g.drawLine(23,5, 19, 5);
g.drawLine(23,5, 23,9);
g.drawLine(21,7, 19, 7);
g.drawLine(21,7, 21,9);
g.drawLine(20,8, 19, 8);
g.drawLine(20,8, 20,9);
g.drawLine(19,9,19,9);
g.drawLine(3, 25, 5,25);
g.drawLine(3, 25, 3,23);
g.drawLine(4, 25, 5,25);
g.drawLine(4, 25, 4,23);
g.drawLine(5, 25, 5,25);
g.drawLine(5, 25, 5,23);
g.drawLine(7, 25, 7,21);
g.drawLine(3, 21, 7,21);
g.drawLine(9,25, 9,19);
g.drawLine(9,19,3,19);
g.drawLine(25,25,25,19);
g.drawLine(25,25,19,25);
g.drawLine(23,23,23,19);
g.drawLine(23,23,19,23);
g.drawLine(21,21,21,19);
g.drawLine(21,21,19,21);
g.drawLine(20,20,20,19);
g.drawLine(20,20,19,20);
g.drawLine(19,19,19,19);//画四个角的寻像图像
char[] c={1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//输入一char型的字符串,实际上应该由程序1中获得
{
int j=3;
int i=12;
{
for (int n=0;n=4;n++)
switch (c[n])
{
case(1):
g.drawLine(n+i,j,n+i,j);
}
}
}//如果a[n]为1,则在正方形中画一个黑色像素点,i,j分别为正方形的横.纵坐标
//正方形是23*23像素的,一行画完了接着画下一行,底下的全是重复的画点程序,是按一行一行画的
{
int j=4;
int i=12;
{
for (int n=5;n=9;n++)
switch (c[n])
{
case(1):
g.drawLine(n-5+i,j,n-5+i,j);
}
}
}
{
int j=5;
int i=12;
{
for (int n=10;n=14;n++)
switch (c[n])
{
case(1):
g.drawLine(n-10+i,j,n-10+i,j);
}
}
}
{
int j=6;
int i=12;
{
for (int n=15;n=19;n++)
switch (c[n])
{
case(1):
g.drawLine(n-15+i,j,n-15+i,j);
}
}
}
{
int j=7;
int i=12;
{
for (int n=20;n=24;n++)
switch (c[n])
{
case(1):
g.drawLine(n-20+i,j,n-20+i,j);
}
}
}
{
int j=8;
int i=12;
{
for (int n=25;n=29;n++)
switch (c[n])
{
case(1):
g.drawLine(n-25+i,j,n-25+i,j);
}
}
}
{
int j=9;
int i=12;
{
for (int n=30;n=34;n++)
switch (c[n])
{
case(1):
g.drawLine(n-30+i,j,n-30+i,j);
}
}
}
{
int j=10;
int i=12;
{
for (int n=35;n=39;n++)
switch (c[n])
{
case(1):
g.drawLine(n-35+i,j,n-35+i,j);
}
}
}
{
int j=11;
int i=12;
{
for (int n=40;n=44;n++)
switch (c[n])
{
case(1):
g.drawLine(n-40+i,j,n-40+i,j);
}
}
}
{
int j=12;
int i=3;
{
for (int n=45;n=67;n++)
switch (c[n])
{
case(1):
g.drawLine(n-45+i,j,n-45+i,j);
}
}
}
{
int j=13;
int i=3;
{
for (int n=68;n=90;n++)
switch (c[n])
{
case(1):
g.drawLine(n-68+i,j,n-68+i,j);
}
}
}
{
int j=14;
int i=3;
{
for (int n=91;n=113;n++)
switch (c[n])
{
case(1):
g.drawLine(n-91+i,j,n-91+i,j);
}
}
}
{
int j=15;
int i=3;
{
for (int n=114;n=136;n++)
switch (c[n])
{
case(1):
g.drawLine(n-114+i,j,n-114+i,j);
}
}
}
{
int j=16;
int i=3;
{
for (int n=137;n=159;n++)
switch (c[n])
{
case(1):
g.drawLine(n-137+i,j,n-137+i,j);
}
}
}
{
int j=17;
int i=12;
{
for (int n=160;n=164;n++)
switch (c[n])
{
case(1):
g.drawLine(n-160+i,j,n-160+i,j);
}
}
}
{
int j=18;
int i=12;
{
for (int n=165;n=169;n++)
switch (c[n])
{
case(1):
g.drawLine(n-165+i,j,n-165+i,j);
}
}
}
{
int j=19;
int i=12;
{
for (int n=170;n=174;n++)
switch (c[n])
{
case(1):
g.drawLine(n-170+i,j,n-170+i,j);
}
}
}
{
int j=20;
int i=12;
{
for (int n=175;n=179;n++)
switch (c[n])
{
case(1):
g.drawLine(n-175+i,j,n-175+i,j);
}
}
}
{
int j=21;
int i=12;
{
for (int n=180;n=184;n++)
switch (c[n])
{
case(1):
g.drawLine(n-180+i,j,n-180+i,j);
}
}
}
{
int j=22;
int i=12;
{
for (int n=185;n=189;n++)
switch (c[n])
{
case(1):
g.drawLine(n-185+i,j,n-185+i,j);
}
}
}
{
int j=23;
int i=12;
{
for (int n=190;n=194;n++)
switch (c[n])
{
case(1):
g.drawLine(n-190+i,j,n-190+i,j);
}
}
}
{
int j=24;
int i=12;
{
for (int n=195;n=199;n++)
switch (c[n])
{
case(1):
g.drawLine(n-195+i,j,n-195+i,j);
}
}
}
{
int j=25;
int i=12;
{
for (int n=0;n=4;n++)
switch (c[n])
{
case(1):
g.drawLine(n+i,j,n+i,j);
}
}
}
/*char b[]={0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0};
{
int j=11;
int i=3;
{
for (int n=0;n=9;n++)
switch (b[n])
{
case(1):
g.drawLine(n+i,j,n+i,j);
}
}
}
{
int j=25;
int i=11;
{
for (int n=0;n=9;n++)
switch (b[n])
{
case(1):
g.drawLine(i,j-n,i,j-n);
}
}
}*/
}
}
关于通过java获取图片像素点时出现 java.lang.OutOfMemoryError: Java heap space 问题
没有发现好像素点运算java源代码的办法像素点运算java源代码,不过可以试一下调整eclipse jvm内存。
设置 eclipse.ini 加入下面选项
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
你可以根据具体情况修改那些数字。
当然还有其他办法调整eclipse jvm内存,也要根据你使用的eclipse 来调整。
Java如何读取BMP的每个像素点,输出到一个二维数组
楼上的基本正确,
问题一:
int[] rgb = new int[3];最好用二维数组
int[] rgb = new int[3][width*height]
问题二:
rgb[0] = (pixel 0xff0000 ) 16 ;
rgb[1] = (pixel 0xff00 ) 8 ;
rgb[2] = (pixel 0xff );
会把数组内的值覆盖,获得就是最后像素点的RGB值;
我写了一个希望可以帮助到你
package imageReadAndWrite;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageDecoder;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/**
* JPG File reader/writer. Uses native com.sun libraries (which may deprecate at
* any time)
*
*
* @author PhoenixZJG
* @version 1.0
*/
public class JPGFile implements xxxFile {
private int[] ints = null;
private byte bytes[] = null; // bytes which make up binary PPM image
private double doubles[] = null;
private int[][] imageRGB = null;
private String filename = null; // filename for PPM image
private int height = 0;
private int width = 0;
/**
* Read the PPM File.
*
* @throws FileNotFoundException
* if the directory/image specified is wrong
* @throws IOException
* if there are problems reading the file.
*/
public JPGFile(String filename) throws FileNotFoundException, IOException {
this.filename = filename;
readImage();
}
/**
* Get the height of the PPM image.
*
* @return the height of the image.
*/
public int getHeight() {
return height;
}
/**
* Get the width of the PPM image.
*
* @return the width of the image.
*/
public int getWidth() {
return width;
}
/**
* Get the data as byte array. Data is of any type that has been read from
* the file (usually 8bit RGB)
*
* @return The data of the image.
*/
public byte[] getBytes() {
return bytes;
}
/**
* Get the data as double array. Data is of any type that has been read from
* the file (usually 8bit RGB put into an 64bit double)
*
* @return The data of the image.
*/
public double[] getDouble() {
return doubles;
}
/**
* Get the data as double array. Data is of any type that has been read from
* the file (usually 8bit RGB put into an 64bit double)
*
* @return The data of the image.
*/
public int[] getInt() {
return ints;
}
/**
* Get the data as integer array. Data is of any type that has been read from
* the file (usually 8bit RGB put into an 64bit double)
*
* @return The data of the image.
*/
public int[][] getImageRGB() {
return imageRGB;
}
/**
* Write to codefn/code file the codedata/code using the
* codewidth, height/code variables. Data is assumed to be 8bit RGB.
*
* @throws FileNotFoundException
* if the directory/image specified is wrong
* @throws IOException
* if there are problems reading the file.
*/
public static void writeImage(String fn, int[] data, int width, int height)
throws FileNotFoundException, IOException {
FileOutputStream fOut = new FileOutputStream(fn);
JPEGImageEncoder jpeg_encode = JPEGCodec.createJPEGEncoder(fOut);
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
image.setRGB(0, 0, width, height, data, 0, width);
jpeg_encode.encode(image);
fOut.close();
}
/**
* Read the image from the specified file.
*
* @throws FileNotFoundException
* pretty obvious
* @throws IOException
* filesystem related problems
*/
private void readImage() throws FileNotFoundException, IOException {
FileInputStream fIn = new FileInputStream(filename);
JPEGImageDecoder jpeg_decode = JPEGCodec.createJPEGDecoder(fIn);
BufferedImage image = jpeg_decode.decodeAsBufferedImage();
width = image.getWidth();
height = image.getHeight();
int[] rgbdata = new int[width * height];
image.getRGB(0, 0, width, height, rgbdata, 0, width);
ints = rgbdata;
bytes = new byte[rgbdata.length];
doubles = new double[rgbdata.length];
imageRGB = new int[3][rgbdata.length];
for (int i = 0; i bytes.length; i++) {
bytes[i] = (byte) (rgbdata[i] 0xFF);
doubles[i] = (double) (rgbdata[i]);
imageRGB[0][i] = (rgbdata[i] 16711680) 16;
imageRGB[1][i] = (rgbdata[i] 65280) 8;
imageRGB[2][i] = (rgbdata[i] 255);
}
}
}
上述代码可以复制,粘贴使用,有方法的注视,getImageRGB() 就可以获得所有像素的RGB值,你就可以在其他方法里处理这个二维数组,得到你想要的平均值了,处理后的值,记得把值逆运算,再转换到Int[]里,就可以用,writeImage()输出图像了。
像素点运算java源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于像素点运算java源代码是什么、像素点运算java源代码的信息别忘了在本站进行查找喔。