BUG-2056: A better fix for the issue, there was already something build in. [skip ci]

This commit is contained in:
Robin 2017-01-16 17:06:50 +01:00
commit 89ae9489d2
4 changed files with 17 additions and 13 deletions

View file

@ -56,13 +56,7 @@ namespace ExternalCommand {
public override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) {
ExportInformation exportInformation = new ExportInformation(Designation, Description);
SurfaceOutputSettings outputSettings = new SurfaceOutputSettings();
// BUG-2056 reported a logical issue, using greenshot format as the default causes issues with the external commands.
// If OutputFormat is Greenshot, use PNG instead.
if (outputSettings.Format == OutputFormat.greenshot)
{
outputSettings.Format = OutputFormat.png;
}
outputSettings.PreventGreenshotFormat();
if (_presetCommand != null) {
if (!config.RunInbackground.ContainsKey(_presetCommand)) {

View file

@ -105,7 +105,7 @@ namespace GreenshotPlugin.Core {
bool useMemoryStream = false;
MemoryStream memoryStream = null;
if (outputSettings.Format == OutputFormat.greenshot && surface == null) {
throw new ArgumentException("Surface needs to be se when using OutputFormat.Greenshot");
throw new ArgumentException("Surface needs to be set when using OutputFormat.Greenshot");
}
try {

View file

@ -98,8 +98,15 @@ namespace Greenshot.Plugin {
ReduceColors = reduceColors;
}
public SurfaceOutputSettings PreventGreenshotFormat() {
if (Format == OutputFormat.greenshot) {
/// <summary>
/// BUG-2056 reported a logical issue, using greenshot format as the default causes issues with the external commands.
/// </summary>
/// <returns>this for fluent API usage</returns>
public SurfaceOutputSettings PreventGreenshotFormat()
{
// If OutputFormat is Greenshot, use PNG instead.
if (Format == OutputFormat.greenshot)
{
Format = OutputFormat.png;
}
return this;

View file

@ -70,8 +70,11 @@ namespace GreenshotWin10Plugin
using (var logoStream = new MemoryRandomAccessStream())
using (var thumbnailStream = new MemoryRandomAccessStream())
{
var outputSettings = new SurfaceOutputSettings();
outputSettings.PreventGreenshotFormat();
// Create capture for export
ImageOutput.SaveToStream(surface, imageStream, new SurfaceOutputSettings());
ImageOutput.SaveToStream(surface, imageStream, outputSettings);
imageStream.Position = 0;
Log.Info("Created RandomAccessStreamReference for the image");
var imageRandomAccessStreamReference = RandomAccessStreamReference.CreateFromStream(imageStream);
@ -83,7 +86,7 @@ namespace GreenshotWin10Plugin
{
using (var thumbnail = ImageHelper.CreateThumbnail(tmpImageForThumbnail, 240, 160))
{
ImageOutput.SaveToStream(thumbnail, null, thumbnailStream, new SurfaceOutputSettings());
ImageOutput.SaveToStream(thumbnail, null, thumbnailStream, outputSettings);
thumbnailStream.Position = 0;
thumbnailRandomAccessStreamReference = RandomAccessStreamReference.CreateFromStream(thumbnailStream);
Log.Info("Created RandomAccessStreamReference for the thumbnail");
@ -94,7 +97,7 @@ namespace GreenshotWin10Plugin
{
using (var logoThumbnail = ImageHelper.CreateThumbnail(logo, 30, 30))
{
ImageOutput.SaveToStream(logoThumbnail, null, logoStream, new SurfaceOutputSettings());
ImageOutput.SaveToStream(logoThumbnail, null, logoStream, outputSettings);
logoStream.Position = 0;
logoRandomAccessStreamReference = RandomAccessStreamReference.CreateFromStream(logoStream);
Log.Info("Created RandomAccessStreamReference for the logo");