ImageUtility 1.5.2
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package ImageUtility --version 1.5.2
NuGet\Install-Package ImageUtility -Version 1.5.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ImageUtility" Version="1.5.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ImageUtility --version 1.5.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ImageUtility, 1.5.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ImageUtility as a Cake Addin #addin nuget:?package=ImageUtility&version=1.5.2 // Install ImageUtility as a Cake Tool #tool nuget:?package=ImageUtility&version=1.5.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ImageUtility;
namespace ImageUtilityTester
{
public partial class ImageUtilityTester : Form
{
public ImageUtilityTester()
{
Action<string> progress = (v) => { Console.WriteLine(v); };
//Show dialog modeless
//if reuse FloatingImageViewer, use Show(). if use Show(true) FloatingImageViewer is disposed when closing.
FloatingImageViewer floatingImageViewer = new FloatingImageViewer("Image", null, 0.3)
{
TopMost = true,
Size = new Size(400, 400),
};
floatingImageViewer.ToolStripButtonPrev.Visible = floatingImageViewer.ToolStripButtonNext.Visible = false;
ListBox lb = new ListBox() { Parent = this, Dock = DockStyle.Top, Height = 300, };
lb.SelectedIndexChanged += (sender, e) =>
{
floatingImageViewer.Reset(lb.Text);
floatingImageViewer.Title = lb.Text;
};
lb.ContextMenuStrip = new ContextMenuStrip();
ToolStripMenuItem tsmiFloatingImageViewer = new ToolStripMenuItem() { Text = "Show", };
lb.ContextMenuStrip.Items.Add(tsmiFloatingImageViewer);
tsmiFloatingImageViewer.Click += (sender, e) =>
{
//if reuse FloatingImageViewer, use Show(). if use Show(true) FloatingImageViewer is disposed when closing.
floatingImageViewer.Show();
};
//progress is nullable
PictureBoxEx pictureBoxEx = new PictureBoxEx(progress, 1.0)
{
Height = 400
};
ToolStripMenuItem toolStripMenuItemDispCurrentRect = new ToolStripMenuItem() { Text = "CurrentRect", };
toolStripMenuItemDispCurrentRect.Click += (sender, e) =>
{
MessageBox.Show(pictureBoxEx.CurrentRect.ToString());
};
pictureBoxEx.ContextMenuStrip.Items.Add(toolStripMenuItemDispCurrentRect);
ToolStripMenuItem toolStripMenuItemDrawRect = new ToolStripMenuItem() { Text = "DrawRect parmanently", };
toolStripMenuItemDrawRect.Click += (sender, e) =>
{
pictureBoxEx.DrawRect(pictureBoxEx.CurrentRect);
};
pictureBoxEx.ContextMenuStrip.Items.Add(toolStripMenuItemDrawRect);
ToolStripMenuItem toolStripMenuItemDrawString = new ToolStripMenuItem() { Text = "DrawString parmanently", };
toolStripMenuItemDrawString.Click += (sender, e) =>
{
pictureBoxEx.DrawString(DateTime.Today.ToString(), pictureBoxEx.CurrentRect,true,SystemInformation.MenuFont);
};
pictureBoxEx.ContextMenuStrip.Items.Add(toolStripMenuItemDrawString);
Controls.Add(pictureBoxEx.Panel);
Controls.Add(pictureBoxEx.ToolStrip);
var binaryImages = new List<byte[]>();
var imageidx = 0;
var toolStripMenuItemMultipleImages = new ToolStripMenuItem() { Text = "Multiple images", };
Action resetImage = () =>
{
pictureBoxEx.ResetImage(binaryImages[imageidx]);
pictureBoxEx.ToolStripButtonPrev.Enabled = imageidx != 0;
pictureBoxEx.ToolStripButtonNext.Enabled = imageidx != binaryImages.Count - 1;
};
Action SelectFiles = () =>
{
binaryImages.Clear();
var files = ImageHelper.ShowMultipleFileSelectDialog();
foreach (var f in files)
{
using (System.IO.FileStream fs = new System.IO.FileStream(f, System.IO.FileMode.Open, System.IO.FileAccess.Read))
{
var data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
if (ImageHelper.IsImage(data))
{
binaryImages.Add(data);
}
}
}
};
toolStripMenuItemMultipleImages.Click += (sender, e) =>
{
SelectFiles();
if (binaryImages.Count > 0)
{
imageidx = 0;
resetImage();
}
};
pictureBoxEx.ToolStripButtonPrev.Click += (sender, e) =>
{
if (imageidx > 0)
{
imageidx--;
resetImage();
}
};
pictureBoxEx.ToolStripButtonNext.Click += (sender, e) =>
{
if (imageidx < binaryImages.Count - 1)
{
imageidx++;
resetImage();
}
};
pictureBoxEx.ToolStripMenuItemFile.DropDownItems.Add(new ToolStripSeparator());
pictureBoxEx.ToolStripMenuItemFile.DropDownItems.Add(toolStripMenuItemMultipleImages);
//if move magnification menu to toolStrip enable below
//pictureBoxEx.ToolStrip.Items.Add(pictureBoxEx.ToolStripMenuItemMagnification);
//if move rotate menu to toolStrip enable below
//pictureBoxEx.ToolStrip.Items.Add(pictureBoxEx.ToolStripMenuItemRotate);
Controls.Add(pictureBoxEx.ToolStrip);
Controls.Add(pictureBoxEx.Menu);
var toolStripMenuItemShowImageDialog = new ToolStripMenuItem() { Text = "ImageViewer", };
pictureBoxEx.ToolStripMenuItemFile.DropDownItems.Add(new ToolStripSeparator());
pictureBoxEx.ToolStripMenuItemFile.DropDownItems.Add(toolStripMenuItemShowImageDialog);
toolStripMenuItemShowImageDialog.Click += (sender, e) =>
{
SelectFiles();
if (binaryImages.Count > 0)
{
ImageViewer.ShowDialog(binaryImages.First(), 1.0);
ImageViewer.ShowDialog(ImageHelper.ToImage(binaryImages.First()), 0.5);
}
};
var toolStripMenuItemShowImage = new ToolStripMenuItem() { Text = "FloatingImageViewer", };
pictureBoxEx.ToolStripMenuItemFile.DropDownItems.Add(toolStripMenuItemShowImage);
var toolStripMenuItemShowImage2 = new ToolStripMenuItem() { Text = "FloatingImageViewer(open multiple at the same time)", };
pictureBoxEx.ToolStripMenuItemFile.DropDownItems.Add(toolStripMenuItemShowImage2);
toolStripMenuItemShowImage2.Click += (sender, e) =>
{
var files = ImageHelper.ShowMultipleFileSelectDialog();
if (files.Length > 0)
{
foreach (var file in files)
{
var fiv = new FloatingImageViewer("test", null, 0.3);
fiv.Reset(file);
/** if FloatingImageViewer is locally declared, set disposeWhenClosing to true to dispose when closing */
fiv.Show(true);
}
}
};
toolStripMenuItemShowImage.Click += (sender, e) =>
{
var files = ImageHelper.ShowMultipleFileSelectDialog();
if (files.Length > 0)
{
lb.Items.Clear();
lb.Items.AddRange(files);
if (lb.Items.Count > 0)
{
floatingImageViewer.Reset(lb.Items[0].ToString());
floatingImageViewer.Title = lb.Items[0].ToString();
}
//if reuse FloatingImageViewer, use Show(). if use Show(true) FloatingImageViewer is disposed when closing.
floatingImageViewer.Show();
}
};
StartPosition = FormStartPosition.CenterScreen;
ClientSize = new Size(800, 600);
}
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETFramework 4.6.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
1.5.7 | 73 | 10/28/2024 | |
1.5.6 | 125 | 6/10/2024 | |
1.5.5 | 122 | 6/9/2024 | |
1.5.4 | 153 | 2/4/2024 | |
1.5.3 | 112 | 1/23/2024 | |
1.5.2 | 183 | 12/30/2023 | |
1.5.1 | 152 | 12/8/2023 | |
1.5.0 | 133 | 11/27/2023 | |
1.4.6 | 253 | 4/9/2023 | |
1.4.4.1 | 317 | 12/4/2022 | |
1.4.4 | 304 | 12/4/2022 | |
1.4.3 | 313 | 11/23/2022 | |
1.4.2.4 | 319 | 11/19/2022 | |
1.4.2.3 | 348 | 11/5/2022 | |
1.4.2.2 | 335 | 11/3/2022 | |
1.4.2.1 | 365 | 10/30/2022 | |
1.4.2 | 354 | 10/29/2022 | |
1.4.1 | 396 | 9/22/2022 | |
1.4.0 | 405 | 9/10/2022 | |
1.3.9.1 | 395 | 8/28/2022 | |
1.3.9 | 443 | 7/21/2022 | |
1.3.8 | 416 | 7/19/2022 | |
1.3.7 | 442 | 7/17/2022 | |
1.3.6 | 401 | 7/7/2022 | |
1.3.5 | 439 | 6/21/2022 | |
1.3.4 | 433 | 5/22/2022 | |
1.3.2 | 450 | 3/26/2022 | |
1.3.1 | 429 | 3/20/2022 | |
1.3.0 | 424 | 3/16/2022 | |
1.2.7 | 442 | 3/15/2022 | |
1.2.6 | 425 | 3/13/2022 | |
1.2.2 | 423 | 3/6/2022 | |
1.2.1 | 430 | 3/5/2022 | |
1.2.0 | 431 | 2/8/2022 | |
1.1.9 | 430 | 2/7/2022 | |
1.1.8 | 449 | 2/6/2022 | |
1.1.7 | 445 | 1/29/2022 | |
1.1.5 | 293 | 12/14/2021 | |
1.1.4 | 288 | 12/8/2021 | |
1.1.3 | 296 | 12/7/2021 | |
1.1.1 | 325 | 11/3/2021 | |
1.0.8 | 344 | 10/20/2021 |