Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ public static ConversionJob Create(ConversionPreset conversionPreset, string inp
}

if (conversionPreset.OutputType == OutputType.Avif ||
conversionPreset.OutputType == OutputType.Bmp ||
conversionPreset.OutputType == OutputType.Jpg ||
conversionPreset.OutputType == OutputType.Png ||
conversionPreset.OutputType == OutputType.Tiff ||
conversionPreset.OutputType == OutputType.Webp)
{
return new ConversionJob_ImageMagick(conversionPreset, inputFilePath);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,11 +220,17 @@ private void ConvertImage(MagickImage image, bool ignoreScale = false)
image.Quality = this.ConversionPreset.GetSettingsValue<uint>(ConversionPreset.ConversionSettingKeys.ImageQuality);
break;

case OutputType.Bmp:
break;

case OutputType.Png:
// http://stackoverflow.com/questions/27267073/imagemagick-lossless-max-compression-for-png
image.Quality = 95;
break;

case OutputType.Tiff:
break;

case OutputType.Jpg:
image.Quality = this.ConversionPreset.GetSettingsValue<uint>(ConversionPreset.ConversionSettingKeys.ImageQuality);
break;
Expand Down
14 changes: 14 additions & 0 deletions Application/FileConverter/ConversionPreset/ConversionPreset.cs
Original file line number Diff line number Diff line change
Expand Up @@ -518,13 +518,27 @@ private void InitializeDefaultSettings(OutputType outputType)
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.VideoFramesPerSecond, "15");
break;

case OutputType.Bmp:
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageScale, "1");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageRotation, "0");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageClampSizePowerOf2, "False");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageMaximumSize, "0");
break;

case OutputType.Png:
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageScale, "1");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageRotation, "0");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageClampSizePowerOf2, "False");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageMaximumSize, "0");
break;

case OutputType.Tiff:
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageScale, "1");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageRotation, "0");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageClampSizePowerOf2, "False");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageMaximumSize, "0");
break;

case OutputType.Jpg:
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageQuality, "90");
this.InitializeSettingsValue(ConversionPreset.ConversionSettingKeys.ImageScale, "1");
Expand Down
2 changes: 2 additions & 0 deletions Application/FileConverter/Helpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,11 @@ public static bool IsOutputTypeCompatibleWithCategory(OutputType outputType, str
return category == InputCategoryNames.Video || category == InputCategoryNames.AnimatedImage;

case OutputType.Avif:
case OutputType.Bmp:
case OutputType.Ico:
case OutputType.Jpg:
case OutputType.Png:
case OutputType.Tiff:
case OutputType.Webp:
return category == InputCategoryNames.Image || category == InputCategoryNames.Document || category == InputCategoryNames.AnimatedImage;

Expand Down
2 changes: 2 additions & 0 deletions Application/FileConverter/OutputType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public enum OutputType
Aac,
Avi,
Avif,
Bmp,
Flac,
Gif,
Ico,
Expand All @@ -20,6 +21,7 @@ public enum OutputType
Ogv,
Pdf,
Png,
Tiff,
Wav,
Webm,
Webp,
Expand Down
60 changes: 60 additions & 0 deletions Application/FileConverter/Settings.default.xml
Original file line number Diff line number Diff line change
Expand Up @@ -579,6 +579,66 @@
<Settings Key="ImageMaximumSize" Value="0" />
<OutputFileNameTemplate>(p)(f)</OutputFileNameTemplate>
</ConversionPreset>
<ConversionPreset Name="To Bmp" OutputType="Bmp" IsDefaultSettings="true">
<InputTypes>xcf</InputTypes>
<InputTypes>arw</InputTypes>
<InputTypes>avif</InputTypes>
<InputTypes>bmp</InputTypes>
<InputTypes>cr2</InputTypes>
<InputTypes>dds</InputTypes>
<InputTypes>dng</InputTypes>
<InputTypes>exr</InputTypes>
<InputTypes>heic</InputTypes>
<InputTypes>ico</InputTypes>
<InputTypes>jfif</InputTypes>
<InputTypes>jpg</InputTypes>
<InputTypes>jpeg</InputTypes>
<InputTypes>nef</InputTypes>
<InputTypes>png</InputTypes>
<InputTypes>psd</InputTypes>
<InputTypes>raf</InputTypes>
<InputTypes>svg</InputTypes>
<InputTypes>tga</InputTypes>
<InputTypes>tif</InputTypes>
<InputTypes>tiff</InputTypes>
<InputTypes>webp</InputTypes>
<InputPostConversionAction>None</InputPostConversionAction>
<Settings Key="ImageScale" Value="1" />
<Settings Key="ImageRotation" Value="0" />
<Settings Key="ImageClampSizePowerOf2" Value="False" />
<Settings Key="ImageMaximumSize" Value="0" />
<OutputFileNameTemplate>(p)(f)</OutputFileNameTemplate>
</ConversionPreset>
<ConversionPreset Name="To Tiff" OutputType="Tiff" IsDefaultSettings="true">
<InputTypes>xcf</InputTypes>
<InputTypes>arw</InputTypes>
<InputTypes>avif</InputTypes>
<InputTypes>bmp</InputTypes>
<InputTypes>cr2</InputTypes>
<InputTypes>dds</InputTypes>
<InputTypes>dng</InputTypes>
<InputTypes>exr</InputTypes>
<InputTypes>heic</InputTypes>
<InputTypes>ico</InputTypes>
<InputTypes>jfif</InputTypes>
<InputTypes>jpg</InputTypes>
<InputTypes>jpeg</InputTypes>
<InputTypes>nef</InputTypes>
<InputTypes>png</InputTypes>
<InputTypes>psd</InputTypes>
<InputTypes>raf</InputTypes>
<InputTypes>svg</InputTypes>
<InputTypes>tga</InputTypes>
<InputTypes>tif</InputTypes>
<InputTypes>tiff</InputTypes>
<InputTypes>webp</InputTypes>
<InputPostConversionAction>None</InputPostConversionAction>
<Settings Key="ImageScale" Value="1" />
<Settings Key="ImageRotation" Value="0" />
<Settings Key="ImageClampSizePowerOf2" Value="False" />
<Settings Key="ImageMaximumSize" Value="0" />
<OutputFileNameTemplate>(p)(f)</OutputFileNameTemplate>
</ConversionPreset>
<ConversionPreset Name="To Avif" OutputType="Avif" IsDefaultSettings="true">
<InputTypes>xcf</InputTypes>
<InputTypes>arw</InputTypes>
Expand Down
4 changes: 3 additions & 1 deletion Application/FileConverter/ViewModels/SettingsViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ public SettingsViewModel()
outputTypeViewModels.Add(new OutputTypeViewModel(OutputType.Png));
outputTypeViewModels.Add(new OutputTypeViewModel(OutputType.Jpg));
outputTypeViewModels.Add(new OutputTypeViewModel(OutputType.Webp));
outputTypeViewModels.Add(new OutputTypeViewModel(OutputType.Bmp));
outputTypeViewModels.Add(new OutputTypeViewModel(OutputType.Tiff));
outputTypeViewModels.Add(new OutputTypeViewModel(OutputType.Ico));
outputTypeViewModels.Add(new OutputTypeViewModel(OutputType.Gif));
outputTypeViewModels.Add(new OutputTypeViewModel(OutputType.Pdf));
Expand Down Expand Up @@ -241,7 +243,7 @@ public Helpers.HardwareAccelerationMode[] HardwareAccelerationModes
this.hardwareAccelerationModes = value;
this.OnPropertyChanged();
}
}
}

public ListCollectionView OutputTypes
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -651,6 +651,12 @@
<DataTrigger Binding="{Binding OutputType}" Value="Png">
<Setter Property="ContentTemplate" Value="{StaticResource PngSettingsDataTemplate}"/>
</DataTrigger>
<DataTrigger Binding="{Binding OutputType}" Value="Bmp">
<Setter Property="ContentTemplate" Value="{StaticResource PngSettingsDataTemplate}"/>
</DataTrigger>
<DataTrigger Binding="{Binding OutputType}" Value="Tiff">
<Setter Property="ContentTemplate" Value="{StaticResource PngSettingsDataTemplate}"/>
</DataTrigger>
<DataTrigger Binding="{Binding OutputType}" Value="Wav">
<Setter Property="ContentTemplate" Value="{StaticResource WavSettingsDataTemplate}"/>
</DataTrigger>
Expand Down