Je fonde ce hors the official PSD File Format documentationLa lecture d'une couche comprimée RLE-de Photoshop (PSD) Fichier
Je peux lire des données brutes très bien, et aucun de mes fichiers ont une compression ZIP. Tout ce dont j'ai besoin, c'est de faire fonctionner les trucs de RLE.
À l'heure actuelle, la décompression de l'information ne m'intéresse pas. Je veux juste le lire et le stocker en mémoire sous sa forme compressée. Je traiterai de la décompression plus tard. Tout ce que je fais est de calculer la taille des données RLE, et de les lire en gros, canal par canal. Ceci est la fonction que je utilise pour calculer la taille des données de canal:
écrit dans ActionScript 3,0
////////////////////////////////////////////////////////////////////
// Compute RLE Data Size
////////////////////////////////////////////////////////////////////
protected function _computeRLESize(data_ : ByteArray, record_ : PSDLayerRecord) : int
{
var numScanlines : int;
var ii : int;
var size : int;
var totalSize : int;
var pad : int;
// Compute our total time
totalSize = (record_.bottom - record_.top) * (record_.right - record_.left);
// Find our number of scanlines
numScanlines = record_.bottom - record_.top;
// Initialize our size
size = 0;
// Loop through each line to see how many bytes we have
trace("Num Scanlines: " + numScanlines);
for (ii = 0; ii < numScanlines; ii++)
{
pad = data_.readShort();
if (pad % 2 != 0) pad++;
size += pad;
}
// Output our compression
trace("Image is at " + size + "/" + totalSize + " compression");
// When we're done, back up to the beginning so we can read it
data_.position -= numScanlines * 2;
// Return our size
return size + numScanlines * 2;
}
J'ai eu quatre autres professionnels étudient les codeurs de ce code ainsi que la documentation officielle , et aucun d'entre eux ne pouvait trouver quelque chose de mal avec cela.
Merci pour toute aide.