PDA

View Full Version : چگونه رنگ یک نقطه از اپلت رو در جاوا بفهمیم ؟



amir_te01
شنبه 26 اسفند 1391, 18:10 عصر
سلام دوستان
میخوام بدونم چجوری میشه رنگ یک نقطه که با x y مشخص کنیم رو تو جاوا فهمید ؟
ممنون میشم راهنمایی کنید

spiderman200700
شنبه 26 اسفند 1391, 19:20 عصر
سلام. اینطوری:
Robot robot = new Robot();
Color color = robot.getPixelColor(x, y);

amir_te01
شنبه 26 اسفند 1391, 22:55 عصر
ممنون داداش ولی ارور میده ...
ببین من میخوام تو یه اپلت رنگ یک نقطه از اپلت رو بدونم ...



import java.awt.Color;
import java.awt.Graphics;
import java.awt.Robot;
import javax.swing.JApplet;

public class ABC extends JApplet{

Robot robot = new Robot();

public void init(){
setSize(500,500);

}
public void paint(Graphics g){

Color color = robot.getPixelColor(10, 10);



}
}

chris66001
یک شنبه 27 اسفند 1391, 10:48 صبح
تو کنسول رنگو ببین

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Robot;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JApplet;

public class ABC extends JApplet{



public void init(){
setSize(300,300);
}

public void paint(Graphics g){
Robot robot;
try {
robot = new Robot();
Color color = robot.getPixelColor(10, 10);
System.out.println(color.toString());

} catch (AWTException ex) {
Logger.getLogger(ABC.class.getName()).log(Level.SE VERE, null, ex);
}
}
}

spiderman200700
یک شنبه 27 اسفند 1391, 11:50 صبح
ممنون داداش ولی ارور میده ...
ببین من میخوام تو یه اپلت رنگ یک نقطه از اپلت رو بدونم ...

خب مشکلت چیه برای این کار؟ کدش رو که بهت دادم!

amir_te01
دوشنبه 28 اسفند 1391, 10:11 صبح
ممنون از دوستانی که جواب دادن

اون کدی chris66001 گذاشتن کار میده ... یعنی رنگ رو میده ولی معلوم نیست رنگ کجا رو میده دقیقا ...

ببینید دوستان بنده یک کدی میخوام که رنگ یک نقطه از اپلت (نه اسکرین) رو که با x و y مشخص میکنیم بهمون بده ...

اگه کسی میدونه لطف کنه این کد رو بهم بده ...

spiderman200700
دوشنبه 28 اسفند 1391, 13:24 عصر
با این باید بشه:
Dimension size = panel.getPreferredSize();
BufferedImage image = (BufferedImage) panel.createImage(size.width, size.height);
Color color = new Color(image.getRGB(x, y));

chris66001
دوشنبه 28 اسفند 1391, 13:55 عصر
برای کد شما طبق دستور بالا میشه


import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JApplet;

public class ABC extends JApplet{

public void init(){
setSize(300,300);
}

public void paint(Graphics g){

BufferedImage image = (BufferedImage) createImage(300, 300);
Color color = new Color(image.getRGB(10, 10));
System.out.println("Red = " + color.getRed());
System.out.println("Green = " + color.getGreen());
System.out.println("Blue = " + color.getBlue());
System.out.println("==================");

}
}


برای تبدیل عدد ها به رنگ هم باید از کد های HTML استفاده کنید (لینک (http://www.w3schools.com/html/html_colors.asp)) یه دستور بنویس که مثلا اگر این عدد ها بود چاپ کنه این رنگه

amir_te01
سه شنبه 29 اسفند 1391, 22:28 عصر
ممنون دوستان
spiderman200700 >> کدی که گذاشتین panel رو ایراد میگیره میگه نمیشناسه ...

chris66001 >> کد رو که اجرا میکنم فقط رنگ نقطه سفید میده ... مثلا اومدم یه مستطیل قرمز کشیدم ، عکس گذاشتم تو صفحه ... ولی فقط سفید میده (255و255و255)

باید چیکار کنم ؟
ببینید من میخوام تو اپلت یک عکس رو بزارم و کاربر هر جا کلیک کرد رنگ اون نقطه چاپ بشه ... (کاری به کدای کلیک و ... نداریم اونا رو بلدم فقط همین پیدا کردن رنگ رو مشکل دارم)

chris66001
چهارشنبه 30 اسفند 1391, 07:46 صبح
ممنون دوستان
spiderman200700 >> کدی که گذاشتین panel رو ایراد میگیره میگه نمیشناسه ...

chris66001 >> کد رو که اجرا میکنم فقط رنگ نقطه سفید میده ... مثلا اومدم یه مستطیل قرمز کشیدم ، عکس گذاشتم تو صفحه ... ولی فقط سفید میده (255و255و255)

باید چیکار کنم ؟
ببینید من میخوام تو اپلت یک عکس رو بزارم و کاربر هر جا کلیک کرد رنگ اون نقطه چاپ بشه ... (کاری به کدای کلیک و ... نداریم اونا رو بلدم فقط همین پیدا کردن رنگ رو مشکل دارم)

کد من رنگ بکگراند رو برمیگردونه مثلا رنگ اپلت رو رو قرمز ست کن قرمز رو بر میگردونه.
SetBackground(Color.RED);
یعنی نمیخوای از MouseListener ها استفاده کنی ؟ فقط میخوای یه نقطه رو بهش بدی رنگ اون نقطه رو بده؟

amir_te01
پنج شنبه 01 فروردین 1392, 23:27 عصر
ممنون
الان این دستور رو چجوری باید بزارم ؟ کجاش ؟
دستوری واسه گذاشتن تصویر هم هست ؟ چون من میخوام یک تصویر بزارم و کاربر هر جای تصویر کلیک کرد رنگ اون نقطه چاپ شه


یعنی نمیخوای از MouseListener ها استفاده کنی ؟ فقط میخوای یه نقطه رو بهش بدی رنگ اون نقطه رو بده؟


چرا ... میخوام از MouseListener استفاده کنم ... ولی اون که فرقی نمیاره ...
ببین تا الان کد شده این:



import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import javax.swing.JApplet;

public class ABC extends JApplet implements MouseListener{

public static int x=0;
public static int y=0;

public void init(){
setSize(300,300);
this.addMouseListener(this);
}

public void paint(Graphics g){

BufferedImage image = (BufferedImage) createImage(300, 300);

Color color = new Color(image.getRGB(x, y));
System.out.println("Red = " + color.getRed());
System.out.println("Green = " + color.getGreen());
System.out.println("Blue = " + color.getBlue());
System.out.println("==================");

}




@Override
public void mouseClicked(MouseEvent e) {
}

@Override
public void mousePressed(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
}

@Override
public void mouseReleased(MouseEvent e) {
}

@Override
public void mouseEntered(MouseEvent e) {
}

@Override
public void mouseExited(MouseEvent e) {
}


}


الان چجوری من یک تصویر بزارم تو صفحه که کد رنگ رو بمون بده ؟
اگه از g.drawIamge استفاده کنی جواب نمیده ... رنگ سفید فقط میده ...

ممنون میشم راهنمایی کنید.