JavaFX - छवियां
आप पैकेज में JavaFX द्वारा प्रदान की गई कक्षाओं का उपयोग करके छवियों को लोड और संशोधित कर सकते हैं javafx.scene.image। JavaFX छवि स्वरूपों का समर्थन करता हैBmp, Gif, Jpeg, Png।
यह अध्याय आपको सिखाता है कि जावाएफएक्स में छवियों को कैसे लोड किया जाए, कैसे एक छवि को कई दृश्यों में प्रोजेक्ट किया जाए और एक छवि के पिक्सल को कैसे बदला जाए।
एक छवि लोड हो रहा है
आप JavaFX में एक इमेज को लोड कर सकते हैं जिसका नाम रखा गया है Image पैकेज का javafx.scene.image।
वर्ग के निर्माता के लिए, आपको निम्नलिखित में से किसी एक को पास करना होगा -
एक InputStream लोड की जाने वाली छवि की वस्तु या
छवि के लिए URL रखने वाला एक स्ट्रिंग चर।
//Passing FileInputStream object as a parameter
FileInputStream inputstream = new FileInputStream("C:\\images\\image.jpg");
Image image = new Image(inputstream);
//Loading image from URL
//Image image = new Image(new FileInputStream("url for the image));
इमेज लोड करने के बाद, आप इंस्टेंटिट करके इमेज के लिए व्यू सेट कर सकते हैं ImageView क्लास और इमेज को इसके कंस्ट्रक्टर के पास भेजना इस प्रकार है -
ImageView imageView = new ImageView(image);
उदाहरण
निम्नलिखित एक उदाहरण है जो दर्शाता है कि जावाएफएक्स में एक छवि को कैसे लोड किया जाए और दृश्य सेट किया जाए।
इस कोड को नाम वाली फ़ाइल में सहेजें ImageExample.java।
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
public class ImageExample extends Application {
@Override
public void start(Stage stage) throws FileNotFoundException {
//Creating an image
Image image = new Image(new FileInputStream("path of the image"));
//Setting the image view
ImageView imageView = new ImageView(image);
//Setting the position of the image
imageView.setX(50);
imageView.setY(25);
//setting the fit height and width of the image view
imageView.setFitHeight(455);
imageView.setFitWidth(500);
//Setting the preserve ratio of the image view
imageView.setPreserveRatio(true);
//Creating a Group object
Group root = new Group(imageView);
//Creating a scene object
Scene scene = new Scene(root, 600, 500);
//Setting title to the Stage
stage.setTitle("Loading an image");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।
Javac ImageExample.java
java ImageExample
निष्पादित करने पर, उपरोक्त कार्यक्रम एक जावाएफएक्स विंडो बनाता है -
एक छवि के कई दृश्य
आप एक ही दृश्य में एक छवि के लिए कई दृश्य भी सेट कर सकते हैं। निम्नलिखित कार्यक्रम एक उदाहरण है जो दर्शाता है कि जावाएफएक्स में एक दृश्य में एक छवि के लिए विभिन्न दृश्य कैसे सेट करें।
इस कोड को नाम वाली फ़ाइल में सहेजें MultipleViews.java।
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
public class MultipleViews extends Application {
@Override
public void start(Stage stage) throws FileNotFoundException {
//Creating an image
Image image = new Image(new FileInputStream("file path"));
//Setting the image view 1
ImageView imageView1 = new ImageView(image);
//Setting the position of the image
imageView1.setX(50);
imageView1.setY(25);
//setting the fit height and width of the image view
imageView1.setFitHeight(300);
imageView1.setFitWidth(250);
//Setting the preserve ratio of the image view
imageView1.setPreserveRatio(true);
//Setting the image view 2
ImageView imageView2 = new ImageView(image);
//Setting the position of the image
imageView2.setX(350);
imageView2.setY(25);
//setting the fit height and width of the image view
imageView2.setFitHeight(150);
imageView2.setFitWidth(250);
//Setting the preserve ratio of the image view
imageView2.setPreserveRatio(true);
//Setting the image view 3
ImageView imageView3 = new ImageView(image);
//Setting the position of the image
imageView3.setX(350);
imageView3.setY(200);
//setting the fit height and width of the image view
imageView3.setFitHeight(100);
imageView3.setFitWidth(100);
//Setting the preserve ratio of the image view
imageView3.setPreserveRatio(true);
//Creating a Group object
Group root = new Group(imageView1, imageView2, imageView3);
//Creating a scene object
Scene scene = new Scene(root, 600, 400);
//Setting title to the Stage
stage.setTitle("Multiple views of an image");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।
Javac MultipleViews.java
java MultipleViews
निष्पादित करने पर, उपरोक्त कार्यक्रम एक जावाएफएक्स विंडो बनाता है -
पिक्सल्स लिखना
JavaFX नाम की कक्षाएं प्रदान करता है PixelReader तथा PixelWriterएक छवि के पिक्सल को पढ़ने और लिखने के लिए कक्षाएं। WritableImage वर्ग का उपयोग एक लिखने योग्य छवि बनाने के लिए किया जाता है।
निम्नलिखित एक उदाहरण है जो प्रदर्शित करता है कि किसी छवि के पिक्सेल को कैसे पढ़ना और लिखना है। यहां, हम एक छवि का रंग मूल्य पढ़ रहे हैं और इसे गहरा बना रहे हैं।
इस कोड को नाम वाली फ़ाइल में सहेजें WritingPixelsExample.java।
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.image.PixelReader;
import javafx.scene.image.PixelWriter;
import javafx.scene.image.WritableImage;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class WritingPixelsExample extends Application {
@Override
public void start(Stage stage) throws FileNotFoundException {
//Creating an image
Image image = new Image(new FileInputStream("C:\\images\\logo.jpg"));
int width = (int)image.getWidth();
int height = (int)image.getHeight();
//Creating a writable image
WritableImage wImage = new WritableImage(width, height);
//Reading color from the loaded image
PixelReader pixelReader = image.getPixelReader();
//getting the pixel writer
PixelWriter writer = wImage.getPixelWriter();
//Reading the color of the image
for(int y = 0; y < height; y++) {
for(int x = 0; x < width; x++) {
//Retrieving the color of the pixel of the loaded image
Color color = pixelReader.getColor(x, y);
//Setting the color to the writable image
writer.setColor(x, y, color.darker());
}
}
//Setting the view for the writable image
ImageView imageView = new ImageView(wImage);
//Creating a Group object
Group root = new Group(imageView);
//Creating a scene object
Scene scene = new Scene(root, 600, 500);
//Setting title to the Stage
stage.setTitle("Writing pixels ");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।
Javac WritingPixelsExample.java
java WritingPixelsExample
निष्पादित करने पर, उपरोक्त कार्यक्रम एक जावाएफएक्स विंडो बनाता है -