Enable nullabe reference types for Emby.Drawing and Jellyfin.Drawing.Skia

This commit is contained in:
Bond_009
2020-04-05 21:19:04 +02:00
parent 29539174a3
commit 2fcbc2a5b8
10 changed files with 45 additions and 50 deletions

View File

@@ -205,11 +205,6 @@ namespace Jellyfin.Drawing.Skia
/// <exception cref="SkiaCodecException">The file at the specified path could not be used to generate a codec.</exception>
public ImageDimensions GetImageSize(string path)
{
if (path == null)
{
throw new ArgumentNullException(nameof(path));
}
if (!File.Exists(path))
{
throw new FileNotFoundException("File not found", path);
@@ -297,7 +292,7 @@ namespace Jellyfin.Drawing.Skia
/// <param name="orientation">The orientation of the image.</param>
/// <param name="origin">The detected origin of the image.</param>
/// <returns>The resulting bitmap of the image.</returns>
internal SKBitmap Decode(string path, bool forceCleanBitmap, ImageOrientation? orientation, out SKEncodedOrigin origin)
internal SKBitmap? Decode(string path, bool forceCleanBitmap, ImageOrientation? orientation, out SKEncodedOrigin origin)
{
if (!File.Exists(path))
{
@@ -348,12 +343,17 @@ namespace Jellyfin.Drawing.Skia
return resultBitmap;
}
private SKBitmap GetBitmap(string path, bool cropWhitespace, bool forceAnalyzeBitmap, ImageOrientation? orientation, out SKEncodedOrigin origin)
private SKBitmap? GetBitmap(string path, bool cropWhitespace, bool forceAnalyzeBitmap, ImageOrientation? orientation, out SKEncodedOrigin origin)
{
if (cropWhitespace)
{
using (var bitmap = Decode(path, forceAnalyzeBitmap, orientation, out origin))
{
if (bitmap == null)
{
return null;
}
return CropWhiteSpace(bitmap);
}
}
@@ -361,13 +361,11 @@ namespace Jellyfin.Drawing.Skia
return Decode(path, forceAnalyzeBitmap, orientation, out origin);
}
private SKBitmap GetBitmap(string path, bool cropWhitespace, bool autoOrient, ImageOrientation? orientation)
private SKBitmap? GetBitmap(string path, bool cropWhitespace, bool autoOrient, ImageOrientation? orientation)
{
SKEncodedOrigin origin;
if (autoOrient)
{
var bitmap = GetBitmap(path, cropWhitespace, true, orientation, out origin);
var bitmap = GetBitmap(path, cropWhitespace, true, orientation, out var origin);
if (bitmap != null && origin != SKEncodedOrigin.TopLeft)
{
@@ -380,7 +378,7 @@ namespace Jellyfin.Drawing.Skia
return bitmap;
}
return GetBitmap(path, cropWhitespace, false, orientation, out origin);
return GetBitmap(path, cropWhitespace, false, orientation, out _);
}
private SKBitmap OrientImage(SKBitmap bitmap, SKEncodedOrigin origin)
@@ -517,14 +515,14 @@ namespace Jellyfin.Drawing.Skia
/// <inheritdoc/>
public string EncodeImage(string inputPath, DateTime dateModified, string outputPath, bool autoOrient, ImageOrientation? orientation, int quality, ImageProcessingOptions options, ImageFormat selectedOutputFormat)
{
if (string.IsNullOrWhiteSpace(inputPath))
if (inputPath.Length == 0)
{
throw new ArgumentNullException(nameof(inputPath));
throw new ArgumentException("String can't be empty.", nameof(inputPath));
}
if (string.IsNullOrWhiteSpace(inputPath))
if (outputPath.Length == 0)
{
throw new ArgumentNullException(nameof(outputPath));
throw new ArgumentException("String can't be empty.", nameof(outputPath));
}
var skiaOutputFormat = GetImageFormat(selectedOutputFormat);
@@ -538,7 +536,7 @@ namespace Jellyfin.Drawing.Skia
{
if (bitmap == null)
{
throw new ArgumentOutOfRangeException($"Skia unable to read image {inputPath}");
throw new InvalidDataException($"Skia unable to read image {inputPath}");
}
var originalImageSize = new ImageDimensions(bitmap.Width, bitmap.Height);