Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Alkuperäisen kuvatiedoston rotaatio javalla

aconitum [10.06.2005 11:20:36]

#

Eli tarkoituksena saada Javalla tehtyä alkuperäiselle tiedostolle (tiff, eps, jne..) 90asteen käännöksiä (eli rotaatio).
Ja tämän jälkeen pystyä tallentamaan muutokset alkuperäiseen tiedostoon, ei mihinkään tilapäiseen ilmentymään.

Googletuksen avulla jotain löytyi, mutta olisi hyvä saada esim. hieman vinkkiä mitä luokkia käyttäen tuo onnistuu ja jos jollain sattuisi jotain esimerkkiä olemaan mistä lähteä eteenpäin.
Luokasta java.awt näyttäisi jotain löytyvän, mutta on tuo graafinen luokka vielä suhteellisen tuntematonta seutua, joten neuvot olisivat tarpeen.

FooBat [11.06.2005 22:26:49]

#

import java.io.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import javax.imageio.*;
public class Rotate {
  public static void main(String [] args) {
    try {
      Image kuva = ImageIO.read(new File("kuva.png"));
      int w = kuva.getWidth(null);
      int h = kuva.getHeight(null);
      BufferedImage bi = new BufferedImage(h, w, BufferedImage.TYPE_INT_ARGB);
      Graphics2D g2 = (Graphics2D)bi.getGraphics();
      //g2.drawImage(kuva,new AffineTransform(0,1,-1,0,h,0), null);//90 oikealle
      g2.drawImage(kuva,new AffineTransform(0,-1,1,0,0,w), null);//90 vasemmalle
      ImageIO.write(bi, "png", new File("roteted.png"));
    }catch(IOException e) {
      System.err.println("IO-error.");
    }
  }
}

Javassa ei taida vakiona tulla mukana kuin jpg ja png enkooderit, joten et saa aikaan tiff, eps, jne. kuvia ellet hae jostain pakettia, joka osaa koodata niitä formaatteja.

Javadocit ja google varmaan auttaa eteenpäin.

aconitum [13.06.2005 11:50:40]

#

Suuret kiitokset tuosta vinkistä FooBat:lle!
Nyt alkoi asiat hieman etenemään.

Ajattelin laittaa tähän hieman jatkoksi lisää tietoja mitä sain selviteltyä, jos niistä vaikka olisi hyötyä jollekin toiselle.

JAI (Java Advanced Imaging) API:lla saa hoideltua hieman lisää eteenpäin.
http://java.sun.com/products/java-media/jai/index.jsp

Tämä mahdollistaa tuen seuraaville formaateille:
BMP, GIF, FPX, JPEG, PNG, PNM, TIFF.

On hyvä kuitenkin huomioida ettei LZW pakkaus muodossa olevia TIFF kuvia ei kuitenkaan tuota (patenttien takia).

Sitten sarjassa tyhmiä kysymyksiä --> Mistäs ihmeestä tuon imageio.plugins paketin saisi?
Ei tahdo millään löytyä edes sunin sivuilta.
Ei kuulu käsittääkseni j2se sdk:n peruspaketteihin, koska rupeaa herjaamaan ettei "import imageio.plugins" löydy.
Tuota tarvittaisiin että saa taas tuon JAI:n käyttöön.

FooBat [13.06.2005 20:20:45]

#

Veikkaisin, että tarkoitat javax.imageio.plugins pakettia.
Se nimittäin löytyy normaalistakin jakelusta, joskin se ei sisällä kuin jpeg-kooderin.

Tuon sinun linkin takaa löytyvä paketti varmaan lisää sinne kaikenlaista lisää.
http://java.sun.com/products/java-media/jai/downloads/download-iio-1_0_01.html

LZW-patentti meni käsittääkseni viime kesänä umpeen, joten kyllä nyt pitäisi tiffejäkin voida tehdä LZW:n kanssa. GIF käyttää muuten myös LZW:tä, mistä syystä se ei ole perus javassa mukana.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta