Beispiel #1
0
        private async Task ResizeOne(XElement element)
        {
            var size       = element.Element(ns + "Size");
            int viewWidth  = (int)decimal.Parse(size.Attribute("width").Value, CultureInfo.InvariantCulture);
            int viewHeight = (int)decimal.Parse(size.Attribute("height").Value, CultureInfo.InvariantCulture);

            using (var image = ReadImage(element))
            {
                using (var dialog = new ResizeImagesDialog(image, viewWidth, viewHeight))
                {
                    var result = dialog.ShowDialog(owner);
                    if (result == DialogResult.OK)
                    {
                        if (!dialog.PreserveSize)
                        {
                            using (var data = dialog.GetImage())
                            {
                                if (data != null)
                                {
                                    WriteImage(element, data);
                                }
                            }
                        }

                        size.SetAttributeValue("width", dialog.WidthPixels.ToString(CultureInfo.InvariantCulture));
                        size.SetAttributeValue("height", dialog.HeightPixels.ToString(CultureInfo.InvariantCulture));
                        size.SetAttributeValue("isSetByUser", "true");

                        await one.Update(page);
                    }
                }
            }
        }
Beispiel #2
0
        private async Task ResizeOne(XElement element)
        {
            var size       = element.Element(ns + "Size");
            int viewWidth  = (int)decimal.Parse(size.Attribute("width").Value, CultureInfo.InvariantCulture);
            int viewHeight = (int)decimal.Parse(size.Attribute("height").Value, CultureInfo.InvariantCulture);

            using (var image = ReadImage(element))
            {
                // when pasting an image onto the page, width or height can be zero
                // OneNote ignores both if either is zero so we'll do the same...
                if (viewWidth == 0 || viewHeight == 0)
                {
                    viewWidth  = image.Width;
                    viewHeight = image.Height;
                }

                using (var dialog = new ResizeImagesDialog(image, viewWidth, viewHeight))
                {
                    var result = dialog.ShowDialog(owner);
                    if (result != DialogResult.OK)
                    {
                        return;
                    }

                    if (dialog.NeedsRewrite)
                    {
                        using (var data = dialog.GetImage())
                        {
                            if (data != null)
                            {
                                WriteImage(element, data);
                            }
                        }
                    }

                    size.SetAttributeValue("width", dialog.ImageWidth.ToString(CultureInfo.InvariantCulture));
                    size.SetAttributeValue("height", dialog.ImageHeight.ToString(CultureInfo.InvariantCulture));
                    size.SetAttributeValue("isSetByUser", "true");

                    logger.WriteLine($"resized from {viewWidth} x {viewHeight} to {dialog.ImageWidth} x {dialog.ImageHeight}");

                    await one.Update(page);
                }
            }
        }