Ejemplo n.º 1
0
 private static RawInfo Convert(string file, Stream streamDestination, Bgr565EncoderOptions options)
 {
     using Image image = Image.Load(file);
     image.Save(streamDestination, new Bgr565Encoder(options));
     return(new RawInfo {
         Width = image.Width, Height = image.Height
     });
 }
Ejemplo n.º 2
0
        static int RunOptionsAndReturnExitCode(CommanLineOptions opt)
        {
            string path = opt.ImagesPath;
            string destPath;

            if (string.IsNullOrEmpty(opt.OutputPath))
            {
                destPath = Path.Combine(path, "raw");
            }
            else
            {
                destPath = opt.OutputPath;
            }
            Directory.CreateDirectory(destPath);

            Bgr565EncoderOptions options = new Bgr565EncoderOptions
            {
                Compress         = opt.Compress,
                TransparentColor = opt.Transparent
            };

            var files = Directory.GetFiles(path, "*.png").OrderBy(t => t);

            if (opt.Single)
            {
                using StreamWriter rawImageDefinition = File.CreateText(Path.Combine(destPath, "RawImagesOffset.h"));
                string fileName        = "images.raw";
                string destinationFile = Path.Combine(destPath, fileName);
                using FileStream rawFileStream = File.Create(destinationFile);
                long offset = 0;
                foreach (string file in files)
                {
                    string fileDef = GetDefNameFormFile(file);
                    using MemoryStream ms = new MemoryStream();
                    RawInfo info   = Convert(file, ms, options);
                    byte[]  buffer = ms.ToArray();
                    rawFileStream.Write(buffer);
                    rawImageDefinition.WriteLine($"#define {fileDef}\t0x{offset:x8}\t// {info.Width}x{info.Height}");
                    offset += buffer.Length;
                }
            }
            else
            {
                using StreamWriter rawImageDefinition = File.CreateText(Path.Combine(destPath, "RawImages.h"));
                int rawCount = 0;
                foreach (string file in files)
                {
                    string  fileDef         = GetDefNameFormFile(file);
                    string  fileName        = $"{rawCount:x2}";
                    string  destinationFile = Path.Combine(destPath, fileName);
                    RawInfo info            = Convert(file, destinationFile, options);
                    rawImageDefinition.WriteLine($"#define {fileDef}\t\"/{fileName}\"\t// {info.Width}x{info.Height} ");
                    rawCount++;
                }
            }
            return(0);
        }
Ejemplo n.º 3
0
 private static RawInfo Convert(string file, string fileDestination, Bgr565EncoderOptions options)
 {
     using FileStream rawFileStream = File.Create(fileDestination);
     return(Convert(file, rawFileStream, options));
 }
Ejemplo n.º 4
0
 public Bgr565Encoder(Bgr565EncoderOptions options)
 {
     _options = options;
 }