Fix for losing EXIF and other information, eventually causing the image to be incorrectly rotated.

This commit is contained in:
RKrom 2014-02-07 10:23:17 +01:00
commit 63ecb20f9e
2 changed files with 16 additions and 8 deletions

View file

@ -330,9 +330,7 @@ EndSelection:<<<<<<<4
LOG.Info("Using default .NET Clipboard.GetImage()");
try {
returnImage = Clipboard.GetImage();
if (returnImage != null) {
return returnImage;
} else {
if (returnImage == null) {
LOG.Info("Clipboard.GetImage() didn't return an image.");
}
} catch (Exception ex) {
@ -345,13 +343,13 @@ EndSelection:<<<<<<<4
} else {
returnImage = GetImageFormat(currentFormat, dataObject);
}
if (returnImage != null) {
ImageHelper.Orientate(returnImage);
return returnImage;
}
} else {
LOG.DebugFormat("Couldn't find format {0}.", currentFormat);
}
if (returnImage != null) {
ImageHelper.Orientate(returnImage);
return returnImage;
}
}
}
return null;

View file

@ -1143,7 +1143,7 @@ namespace GreenshotPlugin.Core {
newImage = new Bitmap(bitmapRect.Width, bitmapRect.Height, targetFormat);
// Make sure both images have the same resolution
newImage.SetResolution(sourceImage.HorizontalResolution, sourceImage.VerticalResolution);
using (Graphics graphics = Graphics.FromImage(newImage)) {
if (fromTransparentToNon) {
// Rule 2: Make sure the background color is white
@ -1162,6 +1162,16 @@ namespace GreenshotPlugin.Core {
// Make sure both images have the same resolution
newImage.SetResolution(sourceImage.HorizontalResolution, sourceImage.VerticalResolution);
}
// Clone property items (EXIF information etc)
if (sourceImage.PropertyItems != null) {
foreach (var propertyItem in sourceImage.PropertyItems) {
try {
newImage.SetPropertyItem(propertyItem);
} catch (Exception ex) {
LOG.Warn("Problem cloning a propertyItem.", ex);
}
}
}
return newImage;
}