Пример #1
0
        private void SaveImageToFile()
        {
            if (_imagesList.SelectedItems.Count != 1)
            {
                return;
            }

            var info = _activeFolder.GetImageInfo(_imagesList.SelectedItems[0].Name);

            using (var sfd = new SaveFileDialog())
            {
                var fi = ImageFormatInfo.FromImageFormat(info.Image.RawFormat);
                sfd.FileName    = string.Format("{0}.{1}", info.ShortName, fi.Extension);
                sfd.Filter      = string.Format("{0} images (*.{0})|*.{0}|All files|*.*", fi.Extension);
                sfd.FilterIndex = 1;
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        info.Image.Save(sfd.FileName);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }
Пример #2
0
        private static ListViewItem CreateImageItem(ImageInfo info)
        {
            var lvi = new ListViewItem(info.ShortName, info.ShortName)
            {
                Name = info.ShortName
            };
            var fi = ImageFormatInfo.FromImageFormat(info.Image.RawFormat);

            lvi.ToolTipText = string.Format("{0} {1}x{2}", fi.Extension, info.Image.Width, info.Image.Height);
            return(lvi);
        }
Пример #3
0
        private void ImageEventHandler(object sender, JanusProtocolEventArgs e)
        {
            var styleImageManager = _serviceProvider.GetRequiredService <IStyleImageManager>();
            var img = styleImageManager.GetImage(e.Parameters);

            using (var ms = new MemoryStream())
            {
                var ifi = ImageFormatInfo.FromImageFormat(img.RawFormat);
                img.Save(ms, img.RawFormat);
                e.Response = new Resource(ifi.MimeType, ms.ToArray());
            }
        }
Пример #4
0
        private static void Export2Mht(
            IServiceProvider provider,
            IList <IMsg> msgs,
            Stream fs,
            ProgressDelegate pd)
        {
            var encoding = Encoding.UTF8;

            using (var sw = new StreamWriter(fs, Encoding.Default))
            {
                sw.Write(
                    _mhtHeader,
                    DateTime.Now.ToString("ddd, d MMM yyyy h:m:s zz00", CultureInfo.InvariantCulture),
                    encoding.HeaderName);
                sw.Flush();

                var htmlText = BuildHTMLPage(provider, msgs, pd, true, Encoding.UTF8);
                var page     = encoding.GetBytes(htmlText);
                fs.Write(page, 0, page.Length);

                var usedSmileFiles =
                    msgs
                    .SelectMany(msg => TextFormatter.GetSmileFiles(msg.Body))
                    .Distinct();

                const string prefix = @"ForumImages\";

                foreach (var smileName in usedSmileFiles)
                {
                    var smileImage =
                        provider
                        .GetRequiredService <IStyleImageManager>()
                        .GetImage(prefix + smileName, StyleImageType.ConstSize);
                    var ifi = ImageFormatInfo.FromImageFormat(smileImage.RawFormat);

                    sw.Write(string.Format(_mhtContentImageHeader,
                                           ifi.MimeType, smileName, ifi.Extension));

                    using (var ms = new MemoryStream())
                    {
                        smileImage.Save(ms, smileImage.RawFormat);
                        sw.Write(Convert.ToBase64String(ms.ToArray(), Base64FormattingOptions.InsertLineBreaks));
                    }
                }

                sw.Write(_mhtFooter);
            }
        }
Пример #5
0
        private void LoadImages(IResourceReader rr, string dir, bool replaceExisting)
        {
            foreach (DictionaryEntry e in rr)
            {
                var key = e.Key.ToString();
                if (dir.Length > 0 && !key.StartsWith(dir) || !(e.Value is Image))
                {
                    continue;
                }

                var uri          = dir.Length > 0 ? key.Substring(dir.Length) : key;
                var separatorPos = uri.IndexOf(Path.DirectorySeparatorChar);
                var namePrefix   = separatorPos != -1
                                        ? Path.GetDirectoryName(uri) + Path.DirectorySeparatorChar
                                        : string.Empty;

                if (!replaceExisting && _images.ContainsKey(uri))
                {
                    continue;
                }

                LoadImage(uri, Path.GetFileName(uri), namePrefix);
                if (_images.ContainsKey(uri))
                {
                    var img = _images[uri];

                    var nameWithExt = string.Format("{0}.{1}",
                                                    uri, ImageFormatInfo.FromImageFormat(img.RawFormat).Extension);
                    _imageNamesWithExt.Remove(nameWithExt);

                    img.Dispose();
                    _images.Remove(uri);
                }

                var newImage = (Image)e.Value;

                var newNameWithExt = string.Format("{0}.{1}",
                                                   uri, ImageFormatInfo.FromImageFormat(newImage.RawFormat).Extension);
                _imageNamesWithExt.Add(newNameWithExt, uri);

                _images.Add(uri, newImage);
            }
        }