Avatar billede davidfossil Nybegynder
25. september 2007 - 23:41 Der er 1 løsning

Rotering af billede

Nedenstående er min implementering af en metode til at rotere et billede i intervaller af 90 grader. Koden fungerer som den skal, men jeg spekulerer lidt på om ikke det burde kunne gøres "nemmere" - altså med mindre kode. Hele showet med x og y variablen er jeg nået frem til ved at prøve mig frem, da jeg ikke helt forstod det der stod i dokumentationen til AffineTransform ... :-)

Nogen der har et bud?

---

BufferedImage img = ImageIO.read(_file);

int w, h, x, y;
switch (_rotation) {
  case 90:  w = img.getHeight(); h = img.getWidth(); x = w; y = 0; break;
  case 180: w = img.getWidth(); h = img.getHeight(); x = w; y = h; break;
  case 270: w = img.getHeight(); h = img.getWidth(); x = 0; y = h; break;
  default:  return null;
}

BufferedImage trans = new BufferedImage(w, h, img.getType());
Graphics2D gfx = trans.createGraphics();

AffineTransform transform = AffineTransform.getTranslateInstance(x, y);
transform.quadrantRotate(_rotation / 90);

gfx.drawRenderedImage(img, transform);
gfx.dispose();

return trans;
Avatar billede davidfossil Nybegynder
02. oktober 2007 - 21:11 #1
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester