Jpeg
Diese Bibliothek enthält ein Jpeg-Objekt, das Teile von großen JPEG-Dateien
extrahieren kann ohne das gesamte Bild in einer Bitmap zu dekodieren. Dies
ermöglicht Teile dieser Bilder anzuzeigen, die in ihrer Gesamtheit unmöglich,
bei voller Auflösung, angezeigt werden könnten.
Dieser Prozess kann langsam sein, weil Android Versionen vor 2.2 die Bytecodes
der Programme zur Laufzeit interpretieren. Android Versionen 2.2 und später
haben einen Just in Time-Compiler der den Bytecodes in einen systemeigenen Code
kompiliert. Dies sollte eine signifikante Abnahme der Bearbeitungszeit dieser
Bibliothek ergeben. Die Verarbeitungsgeschwindigkeit der CPUs von
Android-Geräten wird immer schneller, das wird auch wieder, bei den neuesten
Geräten, eine Geschwindigkeitserhöhung bringen.
List der Types:
Dies ist das Jpeg-Objekt, das Teile von großen JPEG-Dateien extrahieren
kann ohne das gesamte Bild in einer Bitmap zu dekodieren. Dies ermöglicht Teile
dieser Bilder anzuzeigen, die in ihrer Gesamtheit unmöglich, bei voller
Auflösung, angezeigt werden könnten.
Als Nebeneffekt der jpeg Decodierung hat dieses Objekt auch die Fähigkeit
eine Bitmap in oder von einer Reihe von Ints (Integer) zu transformieren. Die Int
Werte entsprechen den ARGB-Werten jedes Pixels der Bitmap.
Dies ist ein "Activity-Objekt", es kann nicht unter Sub
Process_Globals deklariert werden
Events:
Progress(percent As Int) 'Prozentzahl des Fortschrittes des
Decodingprozesses.
Members:
BmpHeight As Int
BmpIsMutable
(bmp As android.graphics.Bitmap) As Boolean
BmpPixels()
As Int
BmpWidth
As Int
GetBmpFromPixels
As android.graphics.Bitmap
GetBmpPixel
(x As Int,
y As Int) As Int
Initialize
(eventname As String)
JpegHeight
As Int
[read only]
JpegWidth
As Int [read
only]
LoadJpegArea
(instream As java.io.InputStream, left As Int, top As Int, width As Int, height As Int) As android.graphics.Bitmap
LoadJpegSizeOnly
(instream As java.io.InputStream)
LoadJpegSmaller
(instream As java.io.InputStream, denominator As Int) As android.graphics.Bitmap
Progress
As Int
[read only]
SetBmpPixel
(x As Int,
y As Int,
argb As Int)
SetPixelsFromBmp
(bmp As android.graphics.Bitmap)
Version
As Double
[read only]
Members Erklärung:
Holt oder setzt die vermutete
Höhe des Bildes das im Pixelarray enthalten ist.
BmpIsMutable (bmp As android.graphics.Bitmap) As Boolean
Holt oder setzt ein Integer
Array das die ARGB Werte der Pixel des Bildes enthält.
Wenn das Array gesetzt ist
sollten auch die geeigneten Werte für BmpWidth und BmpHeight gesetzt werden.
BmpWidth As Int
Holt oder setzt die vermutete
Breite des Bildes das im Pixelarray enthalten is.
GetBmpFromPixels As android.graphics.Bitmap
Gibt eine neue
Bitmap, aus den Pixelarray Daten, zurück.
GetBmpPixel (x As Int, y As Int) As Int
Gibt den ARGB Wert für das
gegebene Pixel im Pixelarray zurück.
Initialize (eventname As String)
Diese Bibliothek enthält
JPEG-Decoder Code der unter GNU General Public License Version 2 veröffentlicht
wurde http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
Der JPEG-Decoder in dieser
Bibliothek ist auf C + +-Code für einen
Viewer ("JViewer") basiert und von Bee-Chung Chen geschrieben und
herausgegeben.
http://www.cs.wisc.edu/~beechung/home/coding/index.html.
Von Helmut Dersch - der@fh-furtwangen.de auf Java übertragen.
Und für den Einsatz mit
Basic4Android von Andrew Graham geändert.
Gibt die Höhe des Original
JPEG Bildes zurück das mit LoadSection oder LoadSizeOnly geladen wurde.
JpegWidth As Int [read only]
Gibt die Breite des Original
JPEG Bildes zurück das mit LoadSection oder LoadSizeOnly geladen wurde.
LoadJpegArea (instream As java.io.InputStream, left As Int, top As Int, width As Int, height As Int) As android.graphics.Bitmap
Lädt die angegebene Fläche
des Bildes aus Instream Setting JpegWidth, JpegHeight und füllt das BmpPixels
Array, das die Pixeldaten für diesen Bereich enthält. Diese Methode liest nur
so weit in der Datei, wie es zur Lokalisierung des erforderlichen Bildbereiches
braucht. Je nach der Stelle wo sich der gewünschte Bereich im Bild befindet hat
eine Auswirkung auf die Bearbeitungszeit dieser Methode. Im Allgemeinen je
weiter unten der untere Teil der gewünschten Fläche im Bild ist desto länger dauert
es. Die Größe der benötigten Fläche hat auch eine große Auswirkungen auf die Bearbeitungszeit
da die Berechnung jedes Pixelwertes aus den komprimierten Daten in der Datei eine
erhebliche Menge Zeit erfordert.
Gibt ein neues Bitmap mit den
Pixeldaten zurück.
LoadJpegSizeOnly (instream As java.io.InputStream)
Lädt nur die Größe
des Bildes vom Instream Setting JpegWidth und JpegHeight.
Das Bild selbst wird nicht geladen.
LoadJpegSmaller (instream As java.io.InputStream, denominator As Int) As android.graphics.Bitmap
Lädt eine skalierte
Version des Bildes aus Instream Einstellung JpgWidth und JpegHeight.
Die Skalierung ist
immer ein ganzzahliger Bruchteil der ursprünglichen Größe, ein Denominator von 2
wird ein halbes Bild der Originalgröße geben, ein Denominator von 3 ein Bild
mit ein Drittel der r Originalgröße und so weiter.
Die BmpWidth, BmpHeight
und BmpPixels Array Werte sind davon nicht betroffen.
Gibt ein neues Bitmap,
das möglicherweise auch noch mit Canvas.DrawBitmap skaliert werden kann, wenn
erforderlich
Gibt den Prozentsatz des
Fortschrittes wärend der Ausführung von LoadJpegSection an.
Dies ist der gleiche Wert der dem Progress Event übergeben wird. Dieses Event
ist Thread-safe
und läuft immer im Main Thread
SetBmpPixel (x As Int, y As Int, argb As Int)
Setzt den ARGB Wert
für das gegebene Pixel im Pixelarray
SetPixelsFromBmp (bmp As android.graphics.Bitmap)
Füllt das Pixelarray
mit den Pixelwerten der gegebenen Bitmap.
Ein neues Pixelarray, mit diesen Werten, wird erzeugt.
Version As Double [read only]
Gibt die Versionsnummer der
Bibliothek zurück.