Frage

Der folgende Link zeigt die Liste der Verzeichnisse, in denen die Vorschaubilder in den jeweiligen Handys gespeichert sind: http://wiki.forum.nokia.com/index.php/Thumbnail_path_for_3rd_edition_devices

aber die auf den Link gegeben Telefone sind begrenzt. Ist es das bedeuten, für andere Telefone (wie N86, Expressmusic usw.), ich habe keinen Zugriff auf die Thumbnails? Ich habe versucht, mit dem allen Verzeichnisstrukturen auf dem Link gegeben, aber keiner arbeitet für die genannten Telefone. Weiß jemand etwas darüber?

War es hilfreich?

Lösung

Ich weiß nicht, ob es ist, was Sie brauchen, aber Sie können holen eingebettet Miniaturansicht aus Full-Size-JPEG-Datei. In meiner J2ME-Anwendung zeigen, dass ich das Telefon Galerie auf diese Weise.

private final static int STOP_AT_BYTE = 8192;   //how far to search for thumbnail
private final static int THUMB_MAX_SIZE = 16284; 

private Image getThumbnailFromStream(InputStream str, long fileSize)
{
    byte[] tempByteArray = new byte[THUMB_MAX_SIZE]; // how big can a thumb get.
    byte[] bytefileReader = {0}; // lazy byte reader
    byte firstByte,secondByte = 0;
    int currentIndex = 0;

    int currByte = 0;

    try {
        str.read(bytefileReader);
        firstByte = bytefileReader[0];
        str.read(bytefileReader);
        secondByte = bytefileReader[0];

        currByte += 2;

        if ((firstByte & 0xFF) == 0xFF && (secondByte & 0xFF) == 0xD8) {    //if this is JPEG
            byte rByte = 0;
            do {
                while (rByte != -1 && currByte < fileSize) {
                    str.read(bytefileReader);
                    rByte = bytefileReader[0];
                    currByte++;
                }

                str.read(bytefileReader);
                rByte = bytefileReader[0];
                currByte++;

                if (currByte > STOP_AT_BYTE) {
                    return null;
                }
            } while ((rByte & 0xFF) != 0xD8 && currByte < fileSize); // thumb starts

            if (currByte >= fileSize) {
                return null;
            }

            tempByteArray[currentIndex++] = -1;
            tempByteArray[currentIndex++] = rByte;
            rByte = 0;

            do {
                while (rByte != -1){
                    str.read(bytefileReader);
                    rByte = bytefileReader[0];
                    tempByteArray[currentIndex++] = rByte;
                }

                str.read(bytefileReader);
                rByte = bytefileReader[0];
                tempByteArray[currentIndex++] = rByte;
            } while ((rByte & 0xFF) != 0xD9); // thumb ends

            tempByteArray[currentIndex++] = -1;
            Image image = Image.createImage(tempByteArray, 0, currentIndex-1);
            tempByteArray = null;

            return image;
        }
    } catch (Throwable e) {
        //error
    }

    return null;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top