mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
CombineImages orientation parameter
This commit is contained in:
parent
7ebc80865f
commit
3e36b02553
4 changed files with 70 additions and 84 deletions
|
@ -61,7 +61,7 @@ public ExternalProgram(string name, string path, string args)
|
|||
}
|
||||
}
|
||||
|
||||
public string Run(string filePath, bool hiddenWindow)
|
||||
public string Run(string filePath)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(filePath) && CheckExtensions(filePath) && !string.IsNullOrEmpty(Path) && File.Exists(Path))
|
||||
{
|
||||
|
@ -99,7 +99,7 @@ public string Run(string filePath, bool hiddenWindow)
|
|||
psi.Arguments = args;
|
||||
}
|
||||
|
||||
if (hiddenWindow)
|
||||
if (HiddenWindow)
|
||||
{
|
||||
psi.WindowStyle = ProcessWindowStyle.Hidden;
|
||||
psi.CreateNoWindow = true;
|
||||
|
|
|
@ -1224,21 +1224,46 @@ public static Image LoadImage(string filePath)
|
|||
return null;
|
||||
}
|
||||
|
||||
public static Image CombineImages(IEnumerable<Image> images, int space = 0)
|
||||
public static Image CombineImages(IEnumerable<Image> images, Orientation orientation = Orientation.Vertical, int space = 0)
|
||||
{
|
||||
int width = images.Max(x => x.Width);
|
||||
int height = images.Sum(x => x.Height);
|
||||
Bitmap bmp = new Bitmap(width, height + (space * (images.Count() - 1)));
|
||||
int width, height;
|
||||
|
||||
int spaceSize = space * (images.Count() - 1);
|
||||
|
||||
if (orientation == Orientation.Vertical)
|
||||
{
|
||||
width = images.Max(x => x.Width);
|
||||
height = images.Sum(x => x.Height) + spaceSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
width = images.Sum(x => x.Width) + spaceSize;
|
||||
height = images.Max(x => x.Height);
|
||||
}
|
||||
|
||||
Bitmap bmp = new Bitmap(width, height);
|
||||
|
||||
using (Graphics g = Graphics.FromImage(bmp))
|
||||
{
|
||||
g.SetHighQuality();
|
||||
int y = 0;
|
||||
int position = 0;
|
||||
|
||||
foreach (Image image in images)
|
||||
{
|
||||
g.DrawImage(image, 0, y, image.Width, image.Height);
|
||||
y += image.Height + space;
|
||||
Rectangle rect;
|
||||
|
||||
if (orientation == Orientation.Vertical)
|
||||
{
|
||||
rect = new Rectangle(0, position, image.Width, image.Height);
|
||||
position += image.Height + space;
|
||||
}
|
||||
else
|
||||
{
|
||||
rect = new Rectangle(position, 0, image.Width, image.Height);
|
||||
position += image.Width + space;
|
||||
}
|
||||
|
||||
g.DrawImage(image, rect);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -123,14 +123,10 @@
|
|||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="lblName.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 10</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="lblName.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<value>5, 8</value>
|
||||
</data>
|
||||
<data name="lblName.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>49, 17</value>
|
||||
<value>38, 13</value>
|
||||
</data>
|
||||
<data name="lblName.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
|
@ -154,13 +150,10 @@
|
|||
<value>True</value>
|
||||
</data>
|
||||
<data name="lblPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 69</value>
|
||||
</data>
|
||||
<data name="lblPath.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<value>5, 56</value>
|
||||
</data>
|
||||
<data name="lblPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>66, 17</value>
|
||||
<value>50, 13</value>
|
||||
</data>
|
||||
<data name="lblPath.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
|
@ -184,13 +177,10 @@
|
|||
<value>True</value>
|
||||
</data>
|
||||
<data name="lblArgs.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 128</value>
|
||||
</data>
|
||||
<data name="lblArgs.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<value>5, 104</value>
|
||||
</data>
|
||||
<data name="lblArgs.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 17</value>
|
||||
<value>60, 13</value>
|
||||
</data>
|
||||
<data name="lblArgs.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
|
@ -210,17 +200,15 @@
|
|||
<data name=">>lblArgs.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="txtName.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="txtName.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>11, 30</value>
|
||||
</data>
|
||||
<data name="txtName.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>8, 24</value>
|
||||
</data>
|
||||
<data name="txtName.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>393, 22</value>
|
||||
<value>296, 20</value>
|
||||
</data>
|
||||
<data name="txtName.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
|
@ -241,13 +229,10 @@
|
|||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="txtPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>11, 89</value>
|
||||
</data>
|
||||
<data name="txtPath.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>8, 72</value>
|
||||
</data>
|
||||
<data name="txtPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>329, 22</value>
|
||||
<value>248, 20</value>
|
||||
</data>
|
||||
<data name="txtPath.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
|
@ -268,13 +253,10 @@
|
|||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="txtArguments.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>11, 148</value>
|
||||
</data>
|
||||
<data name="txtArguments.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>8, 120</value>
|
||||
</data>
|
||||
<data name="txtArguments.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>393, 22</value>
|
||||
<value>296, 20</value>
|
||||
</data>
|
||||
<data name="txtArguments.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
|
@ -295,13 +277,10 @@
|
|||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="btnPathBrowse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>352, 86</value>
|
||||
</data>
|
||||
<data name="btnPathBrowse.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>264, 70</value>
|
||||
</data>
|
||||
<data name="btnPathBrowse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>53, 30</value>
|
||||
<value>40, 24</value>
|
||||
</data>
|
||||
<data name="btnPathBrowse.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
|
@ -325,13 +304,10 @@
|
|||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>207, 351</value>
|
||||
</data>
|
||||
<data name="btnOK.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>155, 285</value>
|
||||
</data>
|
||||
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>96, 30</value>
|
||||
<value>72, 24</value>
|
||||
</data>
|
||||
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
|
@ -355,13 +331,10 @@
|
|||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="btnCancel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>311, 351</value>
|
||||
</data>
|
||||
<data name="btnCancel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>233, 285</value>
|
||||
</data>
|
||||
<data name="btnCancel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>96, 30</value>
|
||||
<value>72, 24</value>
|
||||
</data>
|
||||
<data name="btnCancel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
|
@ -385,13 +358,10 @@
|
|||
<value>True</value>
|
||||
</data>
|
||||
<data name="lblExtensions.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 246</value>
|
||||
</data>
|
||||
<data name="lblExtensions.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<value>5, 200</value>
|
||||
</data>
|
||||
<data name="lblExtensions.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>257, 17</value>
|
||||
<value>191, 13</value>
|
||||
</data>
|
||||
<data name="lblExtensions.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
|
@ -415,13 +385,10 @@
|
|||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="txtExtensions.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>11, 266</value>
|
||||
</data>
|
||||
<data name="txtExtensions.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>8, 216</value>
|
||||
</data>
|
||||
<data name="txtExtensions.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>393, 22</value>
|
||||
<value>296, 20</value>
|
||||
</data>
|
||||
<data name="txtExtensions.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
|
@ -442,13 +409,10 @@
|
|||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="txtOutputExtension.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>11, 207</value>
|
||||
</data>
|
||||
<data name="txtOutputExtension.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>8, 168</value>
|
||||
</data>
|
||||
<data name="txtOutputExtension.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>393, 22</value>
|
||||
<value>296, 20</value>
|
||||
</data>
|
||||
<data name="txtOutputExtension.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
|
@ -469,13 +433,10 @@
|
|||
<value>True</value>
|
||||
</data>
|
||||
<data name="lblOutputExtension.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 187</value>
|
||||
</data>
|
||||
<data name="lblOutputExtension.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<value>5, 152</value>
|
||||
</data>
|
||||
<data name="lblOutputExtension.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>373, 17</value>
|
||||
<value>277, 13</value>
|
||||
</data>
|
||||
<data name="lblOutputExtension.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
|
@ -499,16 +460,19 @@
|
|||
<value>True</value>
|
||||
</data>
|
||||
<data name="cbHiddenWindow.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 295</value>
|
||||
<value>9, 248</value>
|
||||
</data>
|
||||
<data name="cbHiddenWindow.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>2, 2, 2, 2</value>
|
||||
</data>
|
||||
<data name="cbHiddenWindow.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>128, 21</value>
|
||||
<value>99, 17</value>
|
||||
</data>
|
||||
<data name="cbHiddenWindow.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="cbHiddenWindow.Text" xml:space="preserve">
|
||||
<value>Hidden Window</value>
|
||||
<value>Hidden window</value>
|
||||
</data>
|
||||
<data name=">>cbHiddenWindow.Name" xml:space="preserve">
|
||||
<value>cbHiddenWindow</value>
|
||||
|
@ -526,13 +490,10 @@
|
|||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>8, 16</value>
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>417, 394</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>313, 320</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterScreen</value>
|
||||
|
|
|
@ -613,7 +613,7 @@ private void DoFileJobs()
|
|||
|
||||
foreach (ExternalProgram fileAction in actions)
|
||||
{
|
||||
Info.FilePath = fileAction.Run(Info.FilePath, fileAction.HiddenWindow);
|
||||
Info.FilePath = fileAction.Run(Info.FilePath);
|
||||
}
|
||||
|
||||
LoadFileStream();
|
||||
|
|
Loading…
Reference in a new issue