Esempio n. 1
0
 private static int pngToXnb(string pngFile, string xnbFile, bool compressed, bool reach, bool premultiply)
 {
     using (Bitmap png = new Bitmap(pngFile))
     {
         using (FileStream outFs = new FileStream(xnbFile, FileMode.Create, FileAccess.Write))
         {
             using (BinaryWriterWrapper bw = new BinaryWriterWrapper(new BinaryWriter(outFs)))
             {
                 bw.WriteChars("XNB");  // format-identifier
                 bw.WriteChars("w");    // target-platform
                 bw.WriteByte((byte)5); // xnb-format-version
                 byte flagBits = 0;
                 if (!reach)
                 {
                     flagBits |= 0x01;
                 }
                 if (compressed)
                 {
                     flagBits |= 0x80;
                 }
                 bw.WriteByte(flagBits); // flag-bits; 00=reach, 01=hiprofile, 80=compressed, 00=uncompressed
                 if (compressed)
                 {
                     writeCompressedData(bw, png, premultiply);
                 }
                 else
                 {
                     bw.WriteInt(compressedFileSize(png)); // compressed file size
                     writeData(png, bw, premultiply);
                 }
                 return(1);
             }
         }
     }
 }