Wo sind die gespeicherten Thumbnails auf Nokia-Handys für die aufgenommenen Bilder?
-
26-09-2019 - |
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?
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;
}