示例#1
0
 static void WCG2PNG(string from, string to)
 {
     Console.WriteLine("Converting {0} to {1}...", Path.GetFileName(from), Path.GetFileName(to));
     using (var wcg = WcgImage.FromFile(from))
         using (var img = wcg.ToImage())
         {
             img.Save(to);
         }
 }
示例#2
0
        static void PatchCanvas(string srcCanvas, string srcFolder, string dstCanvas)
        {
            Console.WriteLine("Patching {0}...", Path.GetFileName(srcCanvas));

            double scale = NEW_WIDTH / (double)OLD_WIDTH;

            var canvas = new LwgCanvas(srcCanvas);

            canvas.Width  = (int)(canvas.Width * scale);
            canvas.Height = (int)(canvas.Height * scale);

            foreach (var file in Directory.GetFiles(srcFolder))
            {
                string path = Path.GetFileNameWithoutExtension(file);

                if (!file.EndsWith(".png"))
                {
                    continue;
                }

                canvas.ReplaceImage(
                    path,
                    WcgImage.FromImage(file)
                    );

                var item = canvas.GetEntry(path);

                if (item.Flag == 0)
                {
                    item.Flag = byte.MaxValue;
                }

                item.X = (int)(item.X * scale);
                item.Y = (int)(item.Y * scale);
            }

            canvas.Save(dstCanvas);
        }