Java [1242]

Zapisz się
Dodaj kartkę Dodaj bana
Powód wlepienia kartki
Wybierz wątek docelowy z listy lub wpisz jego ID
  • Paweł Ł.

    Witam,
    Szukam tzw. opcji zoom do powiekszania i pomniejszania wczytanego obrazka. Czy w stadardowych bibliotekach j2se znajde cos takiego? Jesli nie to jakie inne biblioteki do tego wykorzystac lub w jaki sposob napisac to samemu (wystarczy sam pomysl)?
    Z gory dziekuje za jakakolwiek pomoc i pozdrawiam :)
  • wojboj

    ZTCW bierz JAI albo jmagick (to 2gie jesli potrzebujesz skalowac do dowolnych rozmiarow tj. obrazek 50x50 przeskalowac do 20x25 w JAI moze byc ciezko).
  • Lipson Earl Grey

    mozesz wykorzystac standarodwe mechanizmy javy, nie potrzeba do tego dociskac JAI Java2D świetnie daje sobie z tym rade, domyslnie przeskaloywanie jest raczej mierne, ale gdzies tam mozna bylo mu ustawic zeby dbal o jakoc i wygladzal.
  • Paweł Ł.

    Dzieki za podpowiedzi. Chwilowo rzucilem to skalowanie, bo mam pilniejsze sprawy, ale niebawem do tego wroce :)
  • Lipson Earl Grey

    //takie cos powinno zadzialac (dostajesz
    //BufferedImage):

    BufferedImage bi=ImageIO.read(<sciezka>);
    AffineTransform af=AffineTransform.getScaleIns tance(<skala_x>, <skala_y>);
    BufferedImage biScaled=<komponent>.getGraphi csConfiguration().createCompat ibleImage(width , height);
    AffineTransformOp afop=new AffineTransformOp( af , AffineTransformOp.TYPE_BILINEA R );
    Graphics2D g=(Graphics2D)bi2.getGraphics( );
    g.grawImage(bi, afop, 0,0);
    g.dispose();

    //i w bi2 masz ladnie przeskalowany (w j2se5
    //mozesz użyć też TYPE_BICUBIC)

    //jesli wystarczy ci Image:

    BufferedImage bi=ImageIO.read(<sciezka>);
    int hint=Image.SCALE_SMOOTH;
    Image i2=bi.getScaledInstance(width, height, hint);

    //oczywiście wczytanie obrazka w drugom
    //przypadku mozesz zrobic inaczej, napewno
    //mozna to zrobic jeszcze inaczej
  • Anonim

    Widze Piotruś ze AWT cie bedzie przesladowac do konca zycia:D