Skip to content

Commit 339820c

Browse files
committed
Added EXIF Copyright Support
1 parent 0760217 commit 339820c

File tree

6 files changed

+93
-12
lines changed

6 files changed

+93
-12
lines changed

Watermarker/App.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@
4747
<setting name="watermarkRot" serializeAs="String">
4848
<value>0</value>
4949
</setting>
50+
<setting name="copyRightString" serializeAs="String">
51+
<value />
52+
</setting>
5053
</Simple_Image_Watermarker.Properties.Settings>
5154
<Watermarker.Properties.Settings>
5255
<setting name="UpgradeRequired" serializeAs="String">

Watermarker/Frm_Main.Designer.cs

Lines changed: 40 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Watermarker/Frm_Main.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ void LoadAll()
9898
break;
9999
}
100100

101+
tbCopyright.Text = Properties.Settings.Default.copyRightString;
101102
tbSuffix.Text = Properties.Settings.Default.suffix;
102103
tbWatermarkFolderName.Text = Properties.Settings.Default.watermarkedFolderName;
103104

@@ -339,13 +340,39 @@ private void AddWatermark(String imagePath, String watermarkImagePath, float opa
339340
}
340341
}
341342
}
343+
if (!String.IsNullOrWhiteSpace(tbCopyright.Text))
344+
{
345+
EditExifCopyright(image, tbCopyright.Text);
346+
}
342347

343348
image.Save(fullPathWatermarkedImage);
344349
}
345350

346351

347352
}
348353

354+
//My SetProperty code... (for ASCII property items only!)
355+
//Exif 2.2 requires that ASCII property items terminate with a null (0x00).
356+
private void SetProperty(ref System.Drawing.Imaging.PropertyItem prop, int iId, string sTxt)
357+
{
358+
int iLen = sTxt.Length + 1;
359+
byte[] bTxt = new Byte[iLen];
360+
for (int i = 0; i < iLen - 1; i++)
361+
bTxt[i] = (byte)sTxt[i];
362+
bTxt[iLen - 1] = 0x00;
363+
prop.Id = iId;
364+
prop.Type = 2;
365+
prop.Value = bTxt;
366+
prop.Len = iLen;
367+
}
368+
369+
public void EditExifCopyright(Image image, string copyright)
370+
{
371+
System.Drawing.Imaging.PropertyItem prop = image.PropertyItems[0];
372+
SetProperty(ref prop, 33432, copyright);
373+
image.SetPropertyItem(prop);
374+
}
375+
349376
private void AddWatermark(String imagePath, String watermarkImagePath, WatermarkPosition position, float opacity, float scale, int margin, String suffix, String folderName)
350377
{
351378
String fullPathImg = Path.GetFullPath(imagePath);
@@ -483,6 +510,11 @@ private void AddWatermark(String imagePath, String watermarkImagePath, Watermark
483510
}
484511
}
485512

513+
if (!String.IsNullOrWhiteSpace(tbCopyright.Text))
514+
{
515+
EditExifCopyright(image, tbCopyright.Text);
516+
}
517+
486518
image.Save(fullPathWatermarkedImage);
487519
}
488520

@@ -769,6 +801,7 @@ private void btnStart_Click(object sender, EventArgs e)
769801
// Save all
770802
Properties.Settings.Default.mode = (int)mode;
771803
Properties.Settings.Default.position = (int)position;
804+
Properties.Settings.Default.copyRightString = tbCopyright.Text;
772805
Properties.Settings.Default.suffix = tbSuffix.Text;
773806
Properties.Settings.Default.watermarkedFolderName = tbWatermarkFolderName.Text;
774807

Watermarker/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@
3232
// You can specify all the values or you can default the Build and Revision Numbers
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
35-
[assembly: AssemblyVersion("1.1.0")]
36-
[assembly: AssemblyFileVersion("1.1.0")]
35+
[assembly: AssemblyVersion("1.2.0")]
36+
[assembly: AssemblyFileVersion("1.2.0")]

Watermarker/Properties/Settings.Designer.cs

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Watermarker/Properties/Settings.settings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,8 @@
3838
<Setting Name="watermarkRot" Type="System.Int32" Scope="User">
3939
<Value Profile="(Default)">0</Value>
4040
</Setting>
41+
<Setting Name="copyRightString" Type="System.String" Scope="User">
42+
<Value Profile="(Default)" />
43+
</Setting>
4144
</Settings>
4245
</SettingsFile>

0 commit comments

Comments
 (0)