Ejemplo n.º 1
0
        public string SaveImage(HttpPostedFileBase file, Models.Symbol symbol, Models.SymbolFile symbolFile, int width = 0, bool useWidthInFilname = false)
        {
            string targetFolder = System.Web.HttpContext.Current.Server.MapPath("~/files");

            if (!string.IsNullOrEmpty(symbol.SymbolPackages.FirstOrDefault()?.Folder))
            {
                targetFolder = targetFolder + "\\" + symbol.SymbolPackages.FirstOrDefault().Folder;
            }

            var ext = Path.GetExtension(file.FileName);

            string fileName = CreateFileName(symbol, ext, targetFolder, symbolFile, width.ToString(), useWidthInFilname);

            string targetPath = Path.Combine(targetFolder, fileName);

            file.SaveAs(targetPath);

            return(fileName);
        }
Ejemplo n.º 2
0
 public void UpdateSymbolFile(Models.SymbolFile symbolFile)
 {
     _dbContext.Entry(symbolFile).State = EntityState.Modified;
     _dbContext.SaveChanges();
 }
Ejemplo n.º 3
0
        public string CreateFileName(Models.Symbol symbol, string ext, string targetFolder = null, Models.SymbolFile symbolFile = null, string width = null, bool useWidthInFilname = true)
        {
            if (string.IsNullOrEmpty(targetFolder))
            {
                targetFolder = System.Web.HttpContext.Current.Server.MapPath("~/files");
            }

            string filename;

            filename = MakeSeoFriendlyString(symbol.Name);
            if (symbolFile != null)
            {
                if (!string.IsNullOrEmpty(symbolFile.Type))
                {
                    filename = filename + "_" + MakeSeoFriendlyString(symbolFile.Type);
                }

                if (!string.IsNullOrEmpty(symbolFile.Color))
                {
                    filename = filename + "_" + MakeSeoFriendlyString(symbolFile.Color);
                }

                if (useWidthInFilname && !string.IsNullOrEmpty(width) && width != "0" && ext != ".pdf" && ext != ".ai")
                {
                    filename = filename + "_" + MakeSeoFriendlyString(width);
                }
            }

            string additionalNumber = "";


            for (int i = 1; ; i++)
            {
                if (!File.Exists(Path.Combine(targetFolder, filename + additionalNumber + ext)))
                {
                    filename = filename + additionalNumber + ext;
                    break;
                }

                additionalNumber = i.ToString();
            }

            return(filename);
        }
Ejemplo n.º 4
0
        public string ConvertImage(HttpPostedFileBase file, Models.Symbol symbol, string format, Models.SymbolFile symbolFile, int maxWidth = 0, bool useWidthInFilname = true)
        {
            string targetFolder = System.Web.HttpContext.Current.Server.MapPath("~/files");

            if (!string.IsNullOrEmpty(symbol.SymbolPackages.FirstOrDefault()?.Folder))
            {
                targetFolder = targetFolder + "\\" + symbol.SymbolPackages.FirstOrDefault().Folder;
            }

            var ext = "." + format;

            string fileName;

            MagickReadSettings readerSettings = new MagickReadSettings();

            readerSettings.Height          = 1500;
            readerSettings.Width           = 1500;
            readerSettings.BackgroundColor = MagickColors.Transparent;
            if (file.ContentType.Equals("image/svg+xml"))
            {
                readerSettings.Format = MagickFormat.Svg;
            }

            using (MemoryStream memStream = new MemoryStream())
            {
                file.InputStream.CopyTo(memStream);

                using (MagickImage image = new MagickImage(memStream, readerSettings))
                {
                    switch (format)
                    {
                    case "png":
                    {
                        image.Format = MagickFormat.Png32;
                        break;
                    }

                    case "jpg":
                    {
                        image.Format = MagickFormat.Jpg;
                        break;
                    }

                    case "gif":
                    {
                        image.Format             = MagickFormat.Gif;
                        image.Settings.ColorType = ColorType.TrueColorAlpha;
                        break;
                    }

                    case "ai":
                    {
                        image.Format = MagickFormat.Ai;
                        break;
                    }

                    case "svg":
                    {
                        image.Format = MagickFormat.Svg;
                        break;
                    }

                    case "tiff":
                    {
                        image.Format            = MagickFormat.Tif;
                        image.CompressionMethod = CompressionMethod.Zip;
                        break;
                    }

                    default:
                    {
                        image.Format = MagickFormat.Png;
                        break;
                    }
                    }

                    if (maxWidth > 0)
                    {
                        image.Resize(new MagickGeometry {
                            IgnoreAspectRatio = false, Width = maxWidth, Height = 0
                        });
                    }

                    fileName = CreateFileName(symbol, ext, targetFolder, symbolFile, image.Width.ToString(), useWidthInFilname);
                    string targetPath = Path.Combine(targetFolder, fileName);
                    image.Write(targetPath);
                }
            }

            return(fileName);
        }
Ejemplo n.º 5
0
        public string ConvertToGif(string inputFileName, Models.Symbol symbol, string format, Models.SymbolFile symbolFile, int maxWidth = 0, bool useWidthInFilname = true)
        {
            string targetFolder = System.Web.HttpContext.Current.Server.MapPath("~/files");

            if (!string.IsNullOrEmpty(symbol.SymbolPackages.FirstOrDefault()?.Folder))
            {
                targetFolder = targetFolder + "\\" + symbol.SymbolPackages.FirstOrDefault().Folder;
            }

            var ext = "." + format;

            string fileName;

            MagickReadSettings readerSettings = new MagickReadSettings();

            readerSettings.Height          = 1500;
            readerSettings.Width           = 1500;
            readerSettings.BackgroundColor = MagickColors.Transparent;

            using (MemoryStream memStream = new MemoryStream())
            {
                using (MagickImage image = new MagickImage(targetFolder + "\\" + inputFileName, readerSettings))
                {
                    image.Format             = MagickFormat.Gif;
                    image.Settings.ColorType = ColorType.TrueColorAlpha;

                    if (maxWidth > 0)
                    {
                        image.Resize(new MagickGeometry {
                            IgnoreAspectRatio = false, Width = maxWidth, Height = 0
                        });
                    }

                    fileName = CreateFileName(symbol, ext, targetFolder, symbolFile, image.Width.ToString(), useWidthInFilname);
                    string targetPath = Path.Combine(targetFolder, fileName);
                    image.Write(targetPath);
                }
            }

            return(fileName);
        }