/// <summary> /// /// </summary> /// <param name="ImageType"></param> /// <returns></returns> private static byte[] ExportImage(ImgX_MemoryFileTypes ImageType) { // Выгружаем данные изображения в переменную _buffer var _buffer = new byte[imgX.Images[0].MemoryUse]; imgX.Export.ToMemoryFile(ref _buffer, ImageType, _bitsPerPixel, false); return(_buffer); }
/// <summary> /// /// </summary> /// <param name="o"></param> /// <param name="ImageType"></param> private static void LoadImage(byte[] o, ImgX_MemoryFileTypes ImageType) { // Очищаем базовый буфер и загружаем буферную переменную обратно Clear(); // Возвращаем преобразованное изображение обратно imgX.Import.FromMemoryFile(ref o, ImageType, string.Empty); // Запоминаем тип изображения в объкт типа ImageType imageType = ImageType; }
/// <summary> /// /// </summary> /// <param name="ImageType"></param> /// <returns></returns> private static string GetImgXFileExt(ImgX_MemoryFileTypes ImageType) { if (ImageType == ImgX_MemoryFileTypes.ixmfBMP) { return("bmp"); } if (ImageType == ImgX_MemoryFileTypes.ixmfGIF) { return("gif"); } if (ImageType == ImgX_MemoryFileTypes.ixmfJPG) { return("jpg"); } if (ImageType == ImgX_MemoryFileTypes.ixmfPCX) { return("pcx"); } if (ImageType == ImgX_MemoryFileTypes.ixmfPNG) { return("png"); } if (ImageType == ImgX_MemoryFileTypes.ixmfPSD) { return("psd"); } if (ImageType == ImgX_MemoryFileTypes.ixmfTGA) { return("tga"); } if (ImageType == ImgX_MemoryFileTypes.ixmfTIF) { return("tiff"); } if (ImageType == ImgX_MemoryFileTypes.ixmfTLA) { return("tla"); } if (ImageType == ImgX_MemoryFileTypes.ixmfWBMP) { return("wbmp"); } // Unsupported imaged types: Icon, mf, Exif, Wmf throw new Exception(string.Format("Unsopported image type: {0}", ImageType)); }
/// <summary> /// /// </summary> /// <param name="ImageType"></param> /// <returns></returns> private static ImgX_FileSaveTypes GetImgXFileSaveType(ImgX_MemoryFileTypes ImageType) { if (ImageType == ImgX_MemoryFileTypes.ixmfBMP) { return(ImgX_FileSaveTypes.ixfsBMP); } if (ImageType == ImgX_MemoryFileTypes.ixmfGIF) { return(ImgX_FileSaveTypes.ixfsGIF); } if (ImageType == ImgX_MemoryFileTypes.ixmfJPG) { return(ImgX_FileSaveTypes.ixfsJPG); } if (ImageType == ImgX_MemoryFileTypes.ixmfPCX) { return(ImgX_FileSaveTypes.ixfsPCX); } if (ImageType == ImgX_MemoryFileTypes.ixmfPNG) { return(ImgX_FileSaveTypes.ixfsPNG); } if (ImageType == ImgX_MemoryFileTypes.ixmfPSD) { return(ImgX_FileSaveTypes.ixfsPSD); } if (ImageType == ImgX_MemoryFileTypes.ixmfTGA) { return(ImgX_FileSaveTypes.ixfsTGA); } if (ImageType == ImgX_MemoryFileTypes.ixmfTIF) { return(ImgX_FileSaveTypes.ixfsTIF); } if (ImageType == ImgX_MemoryFileTypes.ixmfTLA) { return(ImgX_FileSaveTypes.ixfsTLA); } if (ImageType == ImgX_MemoryFileTypes.ixmfWBMP) { return(ImgX_FileSaveTypes.ixfsWBMP); } // Unsupported imaged types: Icon, mf, Exif, Wmf throw new Exception(string.Format("Unsopported image type: {0}", ImageType)); }
// **************************************************************************************************** /// <summary> /// /// </summary> /// <param name="ImageType"></param> /// <param name="Width"></param> /// <param name="Quality"></param> /// <param name="DebugPath"></param> /// <returns></returns> private byte[] CreateImageView(ImgX_MemoryFileTypes ImageType, int Width, int Quality, string DebugPath) { // Сохраняем оригинальное изображение в буферной переменной var __buffer = GetBase(); // Для представлений изображение преобразуется с заданным JPGQuality // из элемента массива Params[2] объекта ecr.View соответствующей сущности таблицы ecr.Views imgX.JPGQuality = Quality; // Проверка ширины изображения if (imgX.Images[0].Width > Width) { // Производим преобразования (resize) var _resizeCoef = Width / Convert.ToDouble(imgX.Images[0].Width); imgX.Effects.Resize(Width, (int)(imgX.Images[0].Height * _resizeCoef), _resizeMethod, string.Empty); } else { // TODO: сделать подложку (опционально по дополнительному параметру из строки Params) } // Экспорт изображения в режиме DEBUG if (DebugPath.Length > 0) { var r = new Random((int)(DateTime.Now.Ticks)); ExportImage(DebugPath + r.Next() + "." + GetImgXFileExt(ImageType), ImageType); } // Выгружаем полученные данные в переменную _buffer var _buffer = ExportImage(ImageType); // Загружаем буферную переменную обратно LoadImage(__buffer, imageType); // Возвращаем значение JPGQuality равным заданным по умолчанию //imgX.JPGQuality = 100; imgX.JPGQuality = Convert.ToInt32(ConfigurationManager.AppSettings.Get("ImgX.JpegQuality")); return(_buffer); }
///<summary> ///</summary> ///<param name="ImagePath"></param> ///<param name="ImageType"></param> private static void ExportImage(string ImagePath, ImgX_MemoryFileTypes ImageType) { imgX.Export.ToFile(ImagePath, GetImgXFileSaveType(ImageType), _bitsPerPixel, false); }