Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JAVA] Image maken van een deel van een Image

Pagina: 1
Acties:

  • Griffin
  • Registratie: Maart 2003
  • Laatst online: 14-11 12:44

Griffin

Is mythical

Topicstarter
Hoop dat de titel een beetje duidelijk want dat is ook mijn vraag.

Ik wil van een deel van een plaatje een nieuw plaatje maken met Java.
Ik heb al lopen zoeken op de JAVA Api en op het internet, ik kan echter niet iets van een methode vinden die zegt ik pak een stuk uit Image A van die en die coordinaten en maak hiervan Image B.
Kwaliteitsverlies maakt me niet uit.

Is er zo iets, zo niet hoe zou ik dit zelf kunnen maken.

Als meer info benodigd is hoor ik het wel.

Verwijderd

Ik weet niet of ik je helemaal begrepen heb, maar het lijkt me dat je een image wilt croppen.

Als je even goed zoekt in de java api kom je dit tegen in het package java.awt.image:
An ImageFilter class for cropping images. This class extends the basic ImageFilter Class to extract a given rectangular region of an existing Image and provide a source for a new image containing just the extracted region. It is meant to be used in conjunction with a FilteredImageSource object to produce cropped versions of existing images.
Daar zou je wel verder mee moeten komen.

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20-11 13:37

Robtimus

me Robtimus no like you

Niet getest, maar als je het deel van (50,50) tot (150,150) wilt hebben zou het volgende moeten werken:
Java:
1
2
3
4
BufferedImage buffered = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = buffered.createGraphics();
g.drawImage(image, -50, -50, null);
g.dispose();

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Griffin
  • Registratie: Maart 2003
  • Laatst online: 14-11 12:44

Griffin

Is mythical

Topicstarter
Tja nu je croppen zegt dan heb je een beter uitgangspunt voor zoeken.
Tja had ik maar op het woord croppen gekomen dan was ik er vast wel uit gekomen.

Ach nu kom ik er vast wel uit met de api van Java.

bedankt (morgen even testen)

  • Griffin
  • Registratie: Maart 2003
  • Laatst online: 14-11 12:44

Griffin

Is mythical

Topicstarter
Even voor mogelijk naslag werk hoe ik het nu gedaan heb.
Was nog even verder gaan zoeken op CROPPEN en heb uiteindelijk het volgende gedaan. Misschien niet helemaal 100% goed, maar momenteel werkt het en kan het altijd verder en beter maken:

Java:
1
2
3
4
5
6
7
BufferedImage buffCopyImage = new BufferedImage(this.drawImage.getWidth(this), 
                                                          this.drawImage.getHeight(this), 
                                                          1);

buffCopyImage.getGraphics().drawImage(this.drawImage, 0, 0, this);

BufferedImage buffCropImage = buffCopyImage.getSubimage(50, 50, 150, 150);


Ik maak BufferedImage van de image.
en van die bufferedImage haal ik een stukje uit en stop dit in een nieuwe bufferedImage zodat ik daar de volgende dingen mee kan doen.

Reden waarom ik 2 buff images is dat je zo aparte grotes etc kan hebben.

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20-11 13:37

Robtimus

me Robtimus no like you

Griffin schreef op zondag 02 maart 2008 @ 12:36:
Java:
1
2
3
BufferedImage buffCopyImage = new BufferedImage(this.drawImage.getWidth(this), 
                                                          this.drawImage.getHeight(this), 
                                                          1);
Doe jezelf een lol en vervang die 1 door BufferedImage.TYPE_INT_RGB. Dan is veel duidelijker waar die 1 voor staat, en je weet meteen ook wat het voor image is.

Als je een constante kan gebruiken ipv de waarde van die constante, ga daar dan voor. Dat schept veel meer duidelijkheid, en de compiler maakt er toch dezelfde byte code van. Tenminste, zolang de waarde van de constante bekend is ten tijde van compilen.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Griffin
  • Registratie: Maart 2003
  • Laatst online: 14-11 12:44

Griffin

Is mythical

Topicstarter
IceManX schreef op zondag 02 maart 2008 @ 16:40:
[...]

Doe jezelf een lol en vervang die 1 door BufferedImage.TYPE_INT_RGB. Dan is veel duidelijker waar die 1 voor staat, en je weet meteen ook wat het voor image is.

Als je een constante kan gebruiken ipv de waarde van die constante, ga daar dan voor. Dat schept veel meer duidelijkheid, en de compiler maakt er toch dezelfde byte code van. Tenminste, zolang de waarde van de constante bekend is ten tijde van compilen.
ik had het in een voorbeeld gezien en dus zo gebruikt. ik wist zelf niet wat de 1 was.
maar nu wel :)
Pagina: 1