Kezdőoldal » Számítástechnika » Programozás » Hogyan tudnám Javaban ezt a...

Hogyan tudnám Javaban ezt a JFrame típusú képet elmenteni jpg fájlba?

Figyelt kérdés

Utánanéztem, viszont csak azt leltem, hogyan lehet BufferedImage típusú képet elmenteni, és megnyitni. Viszont egy ilyen JPanel-el létrehozott JFrame képet( ez ugyebár nem pixelgrafikus, hanem vektorgrafikus kép), amit programmal generálok, hogyan tudnám képfájlként elmenteni? Illetve, ezt a képfájlt ismét megnyitni( már ha el lehet, nekem inkább a képfájlba való írás érdekel). Valaki tudna ebben segíteni?

Itt lenne maga a program, ami legerálja a képet:

package labor9;

import javax.imageio.ImageIO;

import java.io.File;

import java.awt.*;

import javax.swing.*;

import java.io.IOException;

public class Labor9 extends JPanel {

public static void main(String[] args) {

// TODO code application logic here

JFrame ship = new JFrame("Titanic");

ship.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

ship.setLocationRelativeTo(null);

ship.getContentPane().add(new Labor9());

ship.setSize(800, 500);

ship.setVisible(true);

}

@Override

public void paint(Graphics g){

Graphics2D g2d = (Graphics2D) g;

Color sky = new Color(10,130,250);

g2d.setColor(sky);

g2d.fillRect(0,0,800,500);

g2d.setColor(Color.yellow);

g2d.fillOval(625,25,100,100);

g2d.setColor(Color.white);

g2d.fillOval(650,50,50,50);

g2d.setColor(Color.black);

g2d.fill(new Polygon(new int[]{100,400,500,50},new int []{400,400,300,300},4));

g2d.setColor(Color.red);

g2d.fill(new Polygon(new int[]{100,400,450,75},new int []{400,400,350,350},4));

g2d.drawLine(75,350,450,350);

g2d.setColor(Color.white);

g2d.drawString("Titanic",350,340);

Color sands = new Color(244,248,116);

g2d.setColor(sands);

g2d.fillOval(625,380,700,40);

Color sea = new Color(0,0,255);

g2d.setColor(sea);

g2d.fillRect(0,400,800,100);

Color lightgray = new Color(171,170,165);

g2d.setColor(lightgray);

g2d.fill(new Polygon(new int[]{130,400,400,130},new int []{300,300,250,250},4));

Color chimney = new Color(255,165,121);

g2d.setColor(chimney);

for (int i=0; i<4; i++) {

g2d.setColor(chimney);

g2d.fill(new Polygon(new int[]{150+i*60,190+i*60,190+i*60,150+i*60},new int []{250,250,180,180},4));

g2d.setColor(Color.black);

g2d.fill(new Polygon(new int[]{150+i*60,190+i*60,190+i*60,150+i*60},new int []{180,180,150,150},4));

}

Color window = new Color(128,255,255);

g2d.setColor(window);

for (int i=0; i<8; i++) {

g2d.fillRect(150+i*30,280,10,10);

}

for (int i=0; i<8; i++) {

g2d.fillRect(150+i*30,260,10,10);

}

g2d.setColor(Color.black);

g2d.drawLine(55,295,55+43*10,295);

for (int i=0; i<44; i++) {

g2d.drawLine(55+i*10,295,55+i*10,300);

}

}

}


Ha valaki tudna ebben segíteni, előre is köszönöm



2022. jan. 7. 23:50
Sajnos még nem érkezett válasz a kérdésre.
Te lehetsz az első, aki segít a kérdezőnek!

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!