示例#1
0
        /// <summary>
        /// 保存所有屏幕截图到文件中.
        /// </summary>
        /// <param name="filename">The name of the target file. The extension in there is ignored,
        /// it will replaced by an extension derived from the desired file format.</param>
        /// <param name="format">The format of the file.</param>
        /// <returns>An array of images captured.</returns>
        public virtual void Save(String filename, ImageFormatHandler.ImageFormatTypes format)
        {
            String directory = Path.GetDirectoryName(filename);
            String name      = Path.GetFileNameWithoutExtension(filename);
            String ext       = Path.GetExtension(filename);

            ext = formatHandler.GetDefaultFilenameExtension(format);
            if (ext.Length == 0)
            {
                format = ImageFormatHandler.ImageFormatTypes.imgPNG;
                ext    = "png";
            }

            try
            {
                ImageCodecInfo    info;
                EncoderParameters parameters = formatHandler.GetEncoderParameters(format, out info);

                for (int i = 0; i < images.Length; i++)
                {
                    if (images.Length > 1)
                    {
                        filename = String.Format("{0}\\{1}.{2:D2}.{3}", directory, name, i + 1, ext);
                    }
                    else
                    {
                        filename = String.Format("{0}\\{1}.{2}", directory, name, ext);
                    }
                    image = images[i];

                    if (parameters != null)
                    {
                        image.Save(filename, info, parameters);
                    }
                    else
                    {
                        image.Save(filename, ImageFormatHandler.GetImageFormat(format));
                    }
                }
            }
            catch (Exception ex)
            {
                string s = string.Format("Saving image to [{0}] in format [{1}].\n{2}", filename, format.ToString(), ex.ToString());
                //LogHelper.Error(s);
            }
        }
示例#2
0
        public virtual void Save(string filename, ImageFormatHandler.ImageFormatTypes format)
        {
            string directoryName            = Path.GetDirectoryName(filename);
            string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(filename);
            string extension = Path.GetExtension(filename);

            extension = this.imageFormatHandler_0.GetDefaultFilenameExtension(format);
            if (extension.Length == 0)
            {
                format    = ImageFormatHandler.ImageFormatTypes.imgPNG;
                extension = "png";
            }
            try
            {
                ImageCodecInfo    info;
                EncoderParameters encoderParameters = this.imageFormatHandler_0.GetEncoderParameters(format, out info);
                for (int i = 0; i < this.bitmap_1.Length; i++)
                {
                    if (this.bitmap_1.Length > 1)
                    {
                        filename = string.Format(@"{0}\{1}.{2:D2}.{3}", new object[] { directoryName, fileNameWithoutExtension, i + 1, extension });
                    }
                    else
                    {
                        filename = string.Format(@"{0}\{1}.{2}", directoryName, fileNameWithoutExtension, extension);
                    }
                    this.bitmap_0 = this.bitmap_1[i];
                    if (encoderParameters != null)
                    {
                        this.bitmap_0.Save(filename, info, encoderParameters);
                    }
                    else
                    {
                        this.bitmap_0.Save(filename, ImageFormatHandler.GetImageFormat(format));
                    }
                }
            }
            catch (Exception exception)
            {
                string.Format("Saving image to [{0}] in format [{1}].\n{2}", filename, format.ToString(), exception.ToString());
            }
        }