2010-11-24 6 views
0

Ich habe ein Problem bei der Suche nach einer Antwort für diese ...Möglich, ein Bild zu komprimieren und möglicherweise zu einem anderen Typ zu wechseln?

Was ich will ist eine Methode, die in einem Byte-Array für ein gegebenes Bild und komprimiert es. Wenn ich die Dinge richtig verstanden habe, ist png ein guter Weg, um ein Bild zu komprimieren, wenn es viele gleiche Farben hat, also wäre es schön, den MIME-Typ während des Prozesses in png umwandeln zu können. Das heißt, wenn das Bild nicht bereits PNG-Format ist.

Dies ist, was ich im Sinn haben:

public static byte[] compressImage(byte[] imagebytes) { 

    //do the compression here 

    return imagebytes; 
} 
+0

Sie kennen das Bildformat nicht vorher? –

Antwort

1

Sie es durch API Java Bild tun könnte, aber ich dies entmutigen, weil es nicht so mächtig ist weder so cool zu verwenden.

Eine bessere Lösung wäre eine Schnittstelle zu ImageMagick über JMagick. Es wird etwas komplexer sein, in zu erhalten, aber Sie werden einen vollwertiges flexible Motor mit Bildern zu arbeiten haben (unter vielen Formaten) ..

Wenn Sie es auf die alte Weise halten wollen, dann aus den Oracle-Tutorial starten here

+1

vielen Dank für Ihre schnelle Antwort :) Haben Sie gute Gründe, die Java Image API nicht zu verwenden, außer dass es nicht so cool ist? Wenn es für dieses kleine Problem ausreichend ist, meine ich ... –

+0

Tatsache ist, dass es ziemlich begrenzt ist, nicht in der Lage, viele Formate zu unterstützen (ja für PNG und JPEG, aber ich bin nicht sicher über alle Arten von PNGs oder JPEGs). Aber es ist mehr eine Frage des persönlichen Geschmacks, ich denke, für dein Problem __ImageMagick__ kann übertrieben sein, du hast Recht .. versuche es einfach mit Java Image API und hoffe, es ist genug :) – Jack

Verwandte Themen