TODO feature: Image import from a file

This commit is contained in:
Anton Mukhin
2025-05-22 20:32:15 +03:00
parent ce21792088
commit 0f2da5542c
32 changed files with 907 additions and 204 deletions

2
.gitignore vendored
View File

@@ -4,6 +4,8 @@
##
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
examples/tests/32x32/
# User-specific files
*.rsuser
*.suo

View File

@@ -95,6 +95,7 @@
toolTip1 = new System.Windows.Forms.ToolTip(components);
chkLeftSide = new System.Windows.Forms.CheckBox();
chkTopSide = new System.Windows.Forms.CheckBox();
importImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)nudX).BeginInit();
((System.ComponentModel.ISupportInitialize)nudY).BeginInit();
panel1.SuspendLayout();
@@ -363,7 +364,7 @@
//
cmMinilist.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { tsmiMakeVarWidth, tsmiPrepensSymbol, tsmiAppendSymbol, tsmiRemoveSymbol, tsmiRemoveBefore, tsmiRemoveAfter, tsmiCodeShift });
cmMinilist.Name = "cmMinilist";
cmMinilist.Size = new System.Drawing.Size(216, 180);
cmMinilist.Size = new System.Drawing.Size(216, 158);
//
// tsmiMakeVarWidth
//
@@ -495,7 +496,7 @@
//
// fileToolStripMenuItem
//
fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, saveToolStripMenuItem, saveAsToolStripMenuItem, exportToolStripMenuItem, exitToolStripMenuItem });
fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, saveToolStripMenuItem, saveAsToolStripMenuItem, importImageToolStripMenuItem, exportToolStripMenuItem, exitToolStripMenuItem });
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
fileToolStripMenuItem.Text = "File";
@@ -864,6 +865,14 @@
toolTip1.SetToolTip(chkTopSide, "Height changes will be made on Top/Bottom side");
chkTopSide.UseVisualStyleBackColor = true;
//
// importImageToolStripMenuItem
//
importImageToolStripMenuItem.Image = Properties.Resources.z_folder_image;
importImageToolStripMenuItem.Name = "importImageToolStripMenuItem";
importImageToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
importImageToolStripMenuItem.Text = "Import image";
importImageToolStripMenuItem.Click += importImageToolStripMenuItem_Click;
//
// MainForm
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
@@ -980,6 +989,7 @@
private System.Windows.Forms.ToolStripMenuItem tsmiAppendSymbol;
private System.Windows.Forms.ToolStripMenuItem tsmiCodeShift;
private System.Windows.Forms.ToolStripMenuItem tsmiMakeVarWidth;
private System.Windows.Forms.ToolStripMenuItem importImageToolStripMenuItem;
}
}

View File

@@ -471,7 +471,7 @@ namespace McBitFont {
private void button1_Click(object sender, EventArgs e) {
if (modified) {
if (MessageBox.Show("Current symbol is modified.\nDo you want to save the changes?", "Symbol was modified!", MessageBoxButtons.YesNo) == DialogResult.Yes) {
saveFrame();
SaveFrame();
} else {
f = CopyFrame(frames.Find(x => x.code == f.code));
}
@@ -484,10 +484,10 @@ namespace McBitFont {
}
private void button2_Click(object sender, EventArgs e) {
saveFrame();
SaveFrame();
}
private void saveFrame() {
private void SaveFrame() {
int index = frames.FindIndex(x => x.code == f.code);
frames[index] = f;
@@ -852,7 +852,7 @@ namespace McBitFont {
if (frames.First().code > 0) {
prependSymbolToolStripMenuItem.Enabled = true;
tsmiPrepensSymbol.Enabled = true;
}else {
} else {
prependSymbolToolStripMenuItem.Enabled = false;
tsmiPrepensSymbol.Enabled = false;
}
@@ -908,7 +908,7 @@ namespace McBitFont {
private void checkModifiedFrame() {
if (modified) {
if (MessageBox.Show("Current symbol is modified.\nDo you want to save the changes?", "Symbol was modified!", MessageBoxButtons.YesNo) == DialogResult.Yes) {
saveFrame();
SaveFrame();
}
modified = false;
}
@@ -1050,5 +1050,21 @@ namespace McBitFont {
prjModified = true;
}
private void importImageToolStripMenuItem_Click(object sender, EventArgs e) {
ImageImporter iform = new ImageImporter(f.width, f.height);
if (iform.ShowDialog() == DialogResult.OK) {
history.AddPre(f);
for (int i = 0; i < iform.bmpScaled.Width; i++) {
for (int j = 0; j < iform.bmpScaled.Height; j++) {
f.data[i,j] = iform.bmpScaled.GetPixel(i, j).ToArgb().Equals(Color.Black.ToArgb());
}
}
history.AddPost(f);
dotPanel.Refresh();
modified = true;
}
iform.Dispose();
}
}
}

418
McBitFont/ImageImporter.Designer.cs generated Normal file
View File

@@ -0,0 +1,418 @@
namespace McBitFont {
partial class ImageImporter {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
components = new System.ComponentModel.Container();
btnOK = new System.Windows.Forms.Button();
btnCancel = new System.Windows.Forms.Button();
pbOriginal = new System.Windows.Forms.PictureBox();
pbProcessed = new System.Windows.Forms.PictureBox();
btnLoadImage = new System.Windows.Forms.Button();
dlgLoadImage = new System.Windows.Forms.OpenFileDialog();
pbScaled = new System.Windows.Forms.PictureBox();
btnConvert = new System.Windows.Forms.Button();
tbPixelization = new System.Windows.Forms.TrackBar();
lblPixelization = new System.Windows.Forms.Label();
lblThreshold = new System.Windows.Forms.Label();
tbThreshold = new System.Windows.Forms.TrackBar();
lblWhite = new System.Windows.Forms.Label();
lblBlack = new System.Windows.Forms.Label();
btnResize = new System.Windows.Forms.Button();
lblOrigSize = new System.Windows.Forms.Label();
lblProcessedSize = new System.Windows.Forms.Label();
lblScaledSize = new System.Windows.Forms.Label();
label1 = new System.Windows.Forms.Label();
label2 = new System.Windows.Forms.Label();
label3 = new System.Windows.Forms.Label();
label4 = new System.Windows.Forms.Label();
lblTransparency = new System.Windows.Forms.Label();
tbTransparency = new System.Windows.Forms.TrackBar();
toolTip1 = new System.Windows.Forms.ToolTip(components);
label5 = new System.Windows.Forms.Label();
label6 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)pbOriginal).BeginInit();
((System.ComponentModel.ISupportInitialize)pbProcessed).BeginInit();
((System.ComponentModel.ISupportInitialize)pbScaled).BeginInit();
((System.ComponentModel.ISupportInitialize)tbPixelization).BeginInit();
((System.ComponentModel.ISupportInitialize)tbThreshold).BeginInit();
((System.ComponentModel.ISupportInitialize)tbTransparency).BeginInit();
SuspendLayout();
//
// btnOK
//
btnOK.Enabled = false;
btnOK.Location = new System.Drawing.Point(171, 345);
btnOK.Name = "btnOK";
btnOK.Size = new System.Drawing.Size(88, 27);
btnOK.TabIndex = 0;
btnOK.Text = "OK";
btnOK.UseVisualStyleBackColor = true;
btnOK.Click += btnOK_Click;
//
// btnCancel
//
btnCancel.Location = new System.Drawing.Point(377, 345);
btnCancel.Name = "btnCancel";
btnCancel.Size = new System.Drawing.Size(88, 27);
btnCancel.TabIndex = 1;
btnCancel.Text = "Cancel";
btnCancel.UseVisualStyleBackColor = true;
btnCancel.Click += btnCancel_Click;
//
// pbOriginal
//
pbOriginal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
pbOriginal.Location = new System.Drawing.Point(12, 27);
pbOriginal.Name = "pbOriginal";
pbOriginal.Size = new System.Drawing.Size(200, 200);
pbOriginal.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
pbOriginal.TabIndex = 2;
pbOriginal.TabStop = false;
//
// pbProcessed
//
pbProcessed.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
pbProcessed.Location = new System.Drawing.Point(218, 27);
pbProcessed.Name = "pbProcessed";
pbProcessed.Size = new System.Drawing.Size(200, 200);
pbProcessed.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
pbProcessed.TabIndex = 3;
pbProcessed.TabStop = false;
//
// btnLoadImage
//
btnLoadImage.Image = Properties.Resources.folder_open;
btnLoadImage.Location = new System.Drawing.Point(57, 233);
btnLoadImage.Name = "btnLoadImage";
btnLoadImage.Size = new System.Drawing.Size(110, 27);
btnLoadImage.TabIndex = 4;
btnLoadImage.Text = " Load Image";
btnLoadImage.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
btnLoadImage.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
btnLoadImage.UseVisualStyleBackColor = true;
btnLoadImage.Click += btnLoadImage_Click;
//
// dlgLoadImage
//
dlgLoadImage.AddExtension = false;
dlgLoadImage.Filter = "Images|*.bmp;*.png;*.gif;*.jpg;*.jpeg|All files|*.*";
dlgLoadImage.ShowPreview = true;
//
// pbScaled
//
pbScaled.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
pbScaled.Location = new System.Drawing.Point(424, 27);
pbScaled.Name = "pbScaled";
pbScaled.Size = new System.Drawing.Size(200, 200);
pbScaled.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
pbScaled.TabIndex = 5;
pbScaled.TabStop = false;
//
// btnConvert
//
btnConvert.Enabled = false;
btnConvert.Image = Properties.Resources.calculator;
btnConvert.Location = new System.Drawing.Point(263, 233);
btnConvert.Name = "btnConvert";
btnConvert.Size = new System.Drawing.Size(110, 27);
btnConvert.TabIndex = 6;
btnConvert.Text = " Convert";
btnConvert.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
btnConvert.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
btnConvert.UseVisualStyleBackColor = true;
btnConvert.Click += btnConvert_Click;
//
// tbPixelization
//
tbPixelization.AutoSize = false;
tbPixelization.Cursor = System.Windows.Forms.Cursors.SizeWE;
tbPixelization.LargeChange = 2;
tbPixelization.Location = new System.Drawing.Point(39, 296);
tbPixelization.Maximum = 25;
tbPixelization.Minimum = 1;
tbPixelization.Name = "tbPixelization";
tbPixelization.Size = new System.Drawing.Size(128, 32);
tbPixelization.TabIndex = 7;
tbPixelization.Value = 1;
tbPixelization.ValueChanged += tbPixelization_ValueChanged;
tbPixelization.KeyDown += tbPixelization_KeyDown;
//
// lblPixelization
//
lblPixelization.Location = new System.Drawing.Point(39, 323);
lblPixelization.Name = "lblPixelization";
lblPixelization.Size = new System.Drawing.Size(128, 15);
lblPixelization.TabIndex = 8;
lblPixelization.Text = "Pixelization: 1";
lblPixelization.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblThreshold
//
lblThreshold.Location = new System.Drawing.Point(263, 323);
lblThreshold.Name = "lblThreshold";
lblThreshold.Size = new System.Drawing.Size(110, 15);
lblThreshold.TabIndex = 10;
lblThreshold.Text = "Threshold: 0";
lblThreshold.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// tbThreshold
//
tbThreshold.AutoSize = false;
tbThreshold.Cursor = System.Windows.Forms.Cursors.SizeWE;
tbThreshold.LargeChange = 10;
tbThreshold.Location = new System.Drawing.Point(254, 296);
tbThreshold.Maximum = 127;
tbThreshold.Minimum = -128;
tbThreshold.Name = "tbThreshold";
tbThreshold.Size = new System.Drawing.Size(128, 32);
tbThreshold.TabIndex = 9;
tbThreshold.TickFrequency = 8;
tbThreshold.ValueChanged += tbThreshold_ValueChanged;
tbThreshold.KeyDown += tbThreshold_KeyDown;
//
// lblWhite
//
lblWhite.AutoSize = true;
lblWhite.Location = new System.Drawing.Point(221, 282);
lblWhite.Name = "lblWhite";
lblWhite.Size = new System.Drawing.Size(67, 15);
lblWhite.TabIndex = 11;
lblWhite.Text = "More white";
lblWhite.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// lblBlack
//
lblBlack.AutoSize = true;
lblBlack.Location = new System.Drawing.Point(349, 282);
lblBlack.Name = "lblBlack";
lblBlack.Size = new System.Drawing.Size(66, 15);
lblBlack.TabIndex = 12;
lblBlack.Text = "More black";
//
// btnResize
//
btnResize.Enabled = false;
btnResize.Image = Properties.Resources.arrow_inout;
btnResize.Location = new System.Drawing.Point(464, 233);
btnResize.Name = "btnResize";
btnResize.Size = new System.Drawing.Size(120, 27);
btnResize.TabIndex = 13;
btnResize.Text = " Resize to frame";
btnResize.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
btnResize.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
btnResize.UseVisualStyleBackColor = true;
btnResize.Click += btnResize_Click;
//
// lblOrigSize
//
lblOrigSize.AutoSize = true;
lblOrigSize.Location = new System.Drawing.Point(12, 9);
lblOrigSize.Name = "lblOrigSize";
lblOrigSize.Size = new System.Drawing.Size(30, 15);
lblOrigSize.TabIndex = 14;
lblOrigSize.Text = "0 x 0";
//
// lblProcessedSize
//
lblProcessedSize.AutoSize = true;
lblProcessedSize.Location = new System.Drawing.Point(218, 9);
lblProcessedSize.Name = "lblProcessedSize";
lblProcessedSize.Size = new System.Drawing.Size(30, 15);
lblProcessedSize.TabIndex = 15;
lblProcessedSize.Text = "0 x 0";
//
// lblScaledSize
//
lblScaledSize.AutoSize = true;
lblScaledSize.Location = new System.Drawing.Point(424, 9);
lblScaledSize.Name = "lblScaledSize";
lblScaledSize.Size = new System.Drawing.Size(30, 15);
lblScaledSize.TabIndex = 16;
lblScaledSize.Text = "0 x 0";
//
// label1
//
label1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
label1.Location = new System.Drawing.Point(6, 279);
label1.Name = "label1";
label1.Size = new System.Drawing.Size(209, 2);
label1.TabIndex = 17;
//
// label2
//
label2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
label2.Location = new System.Drawing.Point(421, 279);
label2.Name = "label2";
label2.Size = new System.Drawing.Size(209, 2);
label2.TabIndex = 18;
//
// label3
//
label3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
label3.Location = new System.Drawing.Point(421, 230);
label3.Name = "label3";
label3.Size = new System.Drawing.Size(2, 51);
label3.TabIndex = 19;
//
// label4
//
label4.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
label4.Location = new System.Drawing.Point(215, 230);
label4.Name = "label4";
label4.Size = new System.Drawing.Size(2, 51);
label4.TabIndex = 20;
//
// lblTransparency
//
lblTransparency.Location = new System.Drawing.Point(457, 323);
lblTransparency.Name = "lblTransparency";
lblTransparency.Size = new System.Drawing.Size(144, 15);
lblTransparency.TabIndex = 22;
lblTransparency.Text = "Transp. threshold: 32";
lblTransparency.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// tbTransparency
//
tbTransparency.AutoSize = false;
tbTransparency.Cursor = System.Windows.Forms.Cursors.SizeWE;
tbTransparency.LargeChange = 16;
tbTransparency.Location = new System.Drawing.Point(464, 296);
tbTransparency.Maximum = 255;
tbTransparency.Name = "tbTransparency";
tbTransparency.Size = new System.Drawing.Size(128, 32);
tbTransparency.SmallChange = 4;
tbTransparency.TabIndex = 21;
tbTransparency.TickFrequency = 8;
toolTip1.SetToolTip(tbTransparency, "Transparency threshold. Higher value makes more white");
tbTransparency.Value = 4;
tbTransparency.ValueChanged += tbTransparency_ValueChanged;
tbTransparency.KeyDown += tbTransparency_KeyDown;
//
// toolTip1
//
toolTip1.AutoPopDelay = 10000;
toolTip1.InitialDelay = 500;
toolTip1.ReshowDelay = 100;
//
// label5
//
label5.AutoSize = true;
label5.Location = new System.Drawing.Point(438, 282);
label5.Name = "label5";
label5.Size = new System.Drawing.Size(66, 15);
label5.TabIndex = 24;
label5.Text = "More black";
//
// label6
//
label6.AutoSize = true;
label6.Location = new System.Drawing.Point(555, 282);
label6.Name = "label6";
label6.Size = new System.Drawing.Size(67, 15);
label6.TabIndex = 23;
label6.Text = "More white";
label6.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// ImageImporter
//
AcceptButton = btnOK;
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
CancelButton = btnCancel;
ClientSize = new System.Drawing.Size(634, 381);
Controls.Add(label5);
Controls.Add(label6);
Controls.Add(lblTransparency);
Controls.Add(tbTransparency);
Controls.Add(label4);
Controls.Add(label3);
Controls.Add(label2);
Controls.Add(label1);
Controls.Add(lblScaledSize);
Controls.Add(lblProcessedSize);
Controls.Add(lblOrigSize);
Controls.Add(btnResize);
Controls.Add(lblBlack);
Controls.Add(lblWhite);
Controls.Add(lblThreshold);
Controls.Add(tbThreshold);
Controls.Add(lblPixelization);
Controls.Add(tbPixelization);
Controls.Add(btnConvert);
Controls.Add(pbScaled);
Controls.Add(btnLoadImage);
Controls.Add(pbProcessed);
Controls.Add(pbOriginal);
Controls.Add(btnCancel);
Controls.Add(btnOK);
FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
MaximizeBox = false;
MinimizeBox = false;
Name = "ImageImporter";
ShowIcon = false;
ShowInTaskbar = false;
StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
Text = "Import Image";
Paint += ImageImporter_Paint;
((System.ComponentModel.ISupportInitialize)pbOriginal).EndInit();
((System.ComponentModel.ISupportInitialize)pbProcessed).EndInit();
((System.ComponentModel.ISupportInitialize)pbScaled).EndInit();
((System.ComponentModel.ISupportInitialize)tbPixelization).EndInit();
((System.ComponentModel.ISupportInitialize)tbThreshold).EndInit();
((System.ComponentModel.ISupportInitialize)tbTransparency).EndInit();
ResumeLayout(false);
PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.PictureBox pbOriginal;
private System.Windows.Forms.PictureBox pbProcessed;
private System.Windows.Forms.Button btnLoadImage;
private System.Windows.Forms.OpenFileDialog dlgLoadImage;
private System.Windows.Forms.PictureBox pbScaled;
private System.Windows.Forms.Button btnConvert;
private System.Windows.Forms.TrackBar tbPixelization;
private System.Windows.Forms.Label lblPixelization;
private System.Windows.Forms.Label lblThreshold;
private System.Windows.Forms.TrackBar tbThreshold;
private System.Windows.Forms.Label lblWhite;
private System.Windows.Forms.Label lblBlack;
private System.Windows.Forms.Button btnResize;
private System.Windows.Forms.Label lblOrigSize;
private System.Windows.Forms.Label lblProcessedSize;
private System.Windows.Forms.Label lblScaledSize;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label lblTransparency;
private System.Windows.Forms.TrackBar tbTransparency;
private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
}
}

235
McBitFont/ImageImporter.cs Normal file
View File

@@ -0,0 +1,235 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace McBitFont {
public partial class ImageImporter : Form {
private int fw, fh, pixelization, threshold;
private Color[] colorPool = [Color.Black, Color.White];
private Bitmap bmpOriginal, bmpProcessed;
public Bitmap bmpScaled;
public ImageImporter(int width, int height) {
InitializeComponent();
fw = width;
fh = height;
}
private void UpdateControls(byte level) {
switch (level) {
case 1:
bmpProcessed = null;
bmpScaled = null;
pbProcessed.Image = null;
pbScaled.Image = null;
lblProcessedSize.Text = "0 x 0";
lblScaledSize.Text = "0 x 0";
btnResize.Enabled = false;
btnOK.Enabled = false;
btnConvert.Enabled = true;
break;
case 2:
bmpScaled = null;
pbScaled.Image = null;
lblScaledSize.Text = "0 x 0";
btnOK.Enabled = false;
btnResize.Enabled = true;
break;
case 3:
btnOK.Enabled = true;
break;
}
}
private void btnOK_Click(object sender, EventArgs e) {
DialogResult = DialogResult.OK;
}
private void btnCancel_Click(object sender, EventArgs e) {
DialogResult = DialogResult.Cancel;
}
// Pick a color from color pool that is closest to an average of given colors
private Color PickColor(Color[] colors) {
int i;
int r = 0; int g = 0; int b = 0;
// Calculating average color amongst givet color set
for (i = 0; i < colors.Length; i++) {
r += colors[i].R;
g += colors[i].G;
b += colors[i].B;
}
r /= colors.Length;
g /= colors.Length;
b /= colors.Length;
int near = 1000;
int ind = 0;
// Picking a closts color from color pool
for (i = 0; i < colorPool.Length; i++) {
int valR = colorPool[i].R - r + threshold;
int valG = colorPool[i].R - g + threshold;
int valB = colorPool[i].R - b + threshold;
if (valR < 0) valR = -valR;
if (valG < 0) valG = -valG;
if (valB < 0) valB = -valB;
threshold = tbThreshold.Value;
int total = valR + valG + valB;
if (total < near) {
ind = i;
near = total;
}
}
return colorPool[ind];
}
private static void DrawArrow(Graphics g, Point from, Point to, float thickness = 1, Color? color = null) {
if (color == null) color = Color.Black;
var pen = new Pen((Color)color, thickness) {
CustomEndCap = new AdjustableArrowCap(4, 5)
};
g.DrawLine(pen, from, to);
}
private void tbPixelization_ValueChanged(object sender, EventArgs e) {
lblPixelization.Text = "Pixelization: " + tbPixelization.Value.ToString();
}
private void tbThreshold_ValueChanged(object sender, EventArgs e) {
lblThreshold.Text = "Threshold: " + tbThreshold.Value.ToString();
}
private void btnLoadImage_Click(object sender, EventArgs e) {
if (dlgLoadImage.ShowDialog() == DialogResult.OK) {
bmpOriginal = new Bitmap(dlgLoadImage.FileName);
pbOriginal.Image = Draw200x200(bmpOriginal);
lblOrigSize.Text = bmpOriginal.Width.ToString() + " x " + bmpOriginal.Height.ToString()
+ " (" + pbOriginal.Image.Width.ToString() + " x " + pbOriginal.Image.Height.ToString() + ")";
// Clear other images
UpdateControls(1);
}
}
private void btnConvert_Click(object sender, EventArgs e) {
pixelization = tbPixelization.Value;
//Bitmap bmOrig = (Bitmap)pbOriginal.Image;
bmpProcessed = new Bitmap(bmpOriginal.Width, bmpOriginal.Height);
// Processing image
using (Graphics g = Graphics.FromImage(bmpProcessed)) {
List<Color> block;
Rectangle rect = new Rectangle();
SolidBrush sb = new SolidBrush(Color.Black);
Color final = Color.Black;
Color pixel;
// Going through original image with steps = pixelization
for (int x = 0; x < bmpOriginal.Width; x += pixelization) {
for (int y = 0; y < bmpOriginal.Height; y += pixelization) {
block = [];
// Going throug a block pixel by pixel to calculate its average color later
for (int v = 0; v < pixelization; v++) {
for (int c = 0; c < pixelization; c++) {
if (x + v < bmpOriginal.Width && y + c < bmpOriginal.Height) {
pixel = bmpOriginal.GetPixel(x + v, y + c);
if (pixel.A <= tbTransparency.Value) pixel = Color.White;
block.Add(pixel);
}
}
}
// Getting a color from the color pool and painting the block
if (block.Count > 0) {
final = PickColor(block.ToArray());
sb.Color = final;
rect.X = x;
rect.Y = y;
rect.Width = pixelization;
rect.Height = pixelization;
g.FillRectangle(sb, rect);
}
}
}
}
pbProcessed.Image = Draw200x200(bmpProcessed);
lblProcessedSize.Text = bmpProcessed.Width.ToString() + " x " + bmpProcessed.Height.ToString()
+ " (" + pbProcessed.Image.Width.ToString() + " x " + pbProcessed.Image.Height.ToString() + ")";
UpdateControls(2);
}
private void btnResize_Click(object sender, EventArgs e) {
bmpScaled = DrawScaled(bmpProcessed, fw, fh);
pbScaled.Image = Draw200x200(bmpScaled);
lblScaledSize.Text = bmpScaled.Width.ToString() + " x " + bmpScaled.Height.ToString()
+ " (" + pbScaled.Image.Width.ToString() + " x " + pbScaled.Image.Height.ToString() + ")";
UpdateControls(3);
}
// Draw 200x200 bitmap for picturebox
private static Bitmap Draw200x200(Bitmap bmpRef) {
return DrawScaled(bmpRef, 200, 200);
}
// Draw scaled bitmap keeping aspect ratio
private static Bitmap DrawScaled(Bitmap bmpRef, int w, int h) {
var scale = Math.Min(w / (double)bmpRef.Width, h / (double)bmpRef.Height);
var bmpNew = new Bitmap((int)(bmpRef.Width * scale), (int)(bmpRef.Height * scale));
using (Graphics g = Graphics.FromImage(bmpNew)) {
g.InterpolationMode = InterpolationMode.NearestNeighbor;
g.PixelOffsetMode = PixelOffsetMode.Half;
g.DrawImage(bmpRef, 0, 0, bmpNew.Width, bmpNew.Height);
}
return bmpNew;
}
private void tbThreshold_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.C) {
tbThreshold.Value = 0;
}
}
private void tbPixelization_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.C) {
tbPixelization.Value = 1;
}
}
private void tbTransparency_ValueChanged(object sender, EventArgs e) {
lblTransparency.Text = "Transp. threshold: " + tbTransparency.Value.ToString();
}
private void tbTransparency_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.C) {
tbTransparency.Value = 32;
}
}
private void ImageImporter_Paint(object sender, PaintEventArgs e) {
DrawArrow(e.Graphics, new Point(175, 246), new Point(255, 246), 2, Color.SlateGray);
DrawArrow(e.Graphics, new Point(380, 246), new Point(455, 246), 2, Color.SlateGray);
}
}
}

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="dlgLoadImage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>147, 17</value>
</metadata>
</root>

View File

@@ -60,36 +60,6 @@ namespace McBitFont.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap action_add {
get {
object obj = ResourceManager.GetObject("action_add", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap action_check {
get {
object obj = ResourceManager.GetObject("action_check", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap action_remove {
get {
object obj = ResourceManager.GetObject("action_remove", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@@ -103,29 +73,9 @@ namespace McBitFont.Properties {
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_back {
internal static System.Drawing.Bitmap arrow_inout {
get {
object obj = ResourceManager.GetObject("arrow_back", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_down {
get {
object obj = ResourceManager.GetObject("arrow_down", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_next {
get {
object obj = ResourceManager.GetObject("arrow_next", resourceCulture);
object obj = ResourceManager.GetObject("arrow_inout", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -143,9 +93,9 @@ namespace McBitFont.Properties {
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_top {
internal static System.Drawing.Bitmap arrow_undo {
get {
object obj = ResourceManager.GetObject("arrow_top", resourceCulture);
object obj = ResourceManager.GetObject("arrow_undo", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -153,9 +103,9 @@ namespace McBitFont.Properties {
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap arrow_undo {
internal static System.Drawing.Bitmap calculator {
get {
object obj = ResourceManager.GetObject("arrow_undo", resourceCulture);
object obj = ResourceManager.GetObject("calculator", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -190,26 +140,6 @@ namespace McBitFont.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Famfamfam_Silk_Folder_16 {
get {
object obj = ResourceManager.GetObject("Famfamfam-Silk-Folder.16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Famfamfam_Silk_Folder_page_16 {
get {
object obj = ResourceManager.GetObject("Famfamfam-Silk-Folder-page.16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@@ -310,26 +240,6 @@ namespace McBitFont.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Ionic_Ionicons_Invert_mode_outline_16 {
get {
object obj = ResourceManager.GetObject("Ionic-Ionicons-Invert-mode-outline.16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap save {
get {
object obj = ResourceManager.GetObject("save", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@@ -380,6 +290,16 @@ namespace McBitFont.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap z_folder_image {
get {
object obj = ResourceManager.GetObject("z_folder_image", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View File

@@ -118,121 +118,97 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="icon_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Ionic-Ionicons-Invert-mode-outline.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Ionic-Ionicons-Invert-mode-outline.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_next" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_next.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Page-copy.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Page-copy.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_back" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_back.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Page-white.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Page-white.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Shape-flip-horizontal.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Shape-flip-horizontal.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Door-out.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Door-out.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Folder-page.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Folder-page.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_remove" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_open" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Disk.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Disk.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Page-paste.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Page-paste.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Shape-flip-vertical.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Shape-flip-vertical.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Folder.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Folder.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_top" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_top.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_check" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_check.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_tick" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tick.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_redo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_redo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_undo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_undo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_right" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_left" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\..\icons\famfamfam\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_uo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_align_center" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\shape_align_center.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_asterisk" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\asterisk_orange.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_shading" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\shading.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_export" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\package_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_contrast" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\contrast.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="Famfamfam-Silk-Page-paste.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Page-paste.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="folder_open" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Page-copy.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Page-copy.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_inout" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_inout.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_redo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\redo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Disk.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Disk.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_right" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Door-out.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Door-out.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_asterisk" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\asterisk_orange.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\..\icons\famfamfam\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_uo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_align_center" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\shape_align_center.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_shading" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\shading.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_undo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_undo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_tick" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tick.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_redo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_redo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Page-white.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Page-white.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Shape-flip-horizontal.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Shape-flip-horizontal.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Famfamfam-Silk-Shape-flip-vertical.16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Famfamfam-Silk-Shape-flip-vertical.16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="z_folder_image" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_undo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\undo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="calculator" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\calculator.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

View File

@@ -13,7 +13,7 @@ V Shift all symbols on code line (change symbol codes)
V Specify starting code (extends the shift)
V Ability to make monospaced font a variable width one
V Undo/Redo for canvas changes
- Image import from a file
V Image import from a file
- Import from a text array
- Rectangle selection to mass-paint, shift and mirror pixels
V "Packed" fonts export

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
examples/tests/derevya.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
examples/tests/flipper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
examples/tests/panda.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B