[AdvancedPaste]Add all BitmapDecoder supported image filetypes to ImageToText (#35600)

Adds support to ImageToText for all image filetypes supported by BitmapDecoder.
This commit is contained in:
Dave Rayment 2025-01-13 12:05:10 +00:00 коммит произвёл GitHub
Родитель 3ae36592c9
Коммит a665975460
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
1 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -18,7 +18,7 @@ namespace AdvancedPaste.Helpers;
internal static class DataPackageHelpers internal static class DataPackageHelpers
{ {
private static readonly HashSet<string> ImageFileTypes = new(StringComparer.InvariantCultureIgnoreCase) { ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".tiff", ".ico", ".svg" }; private static readonly Lazy<HashSet<string>> ImageFileTypes = new(GetImageFileTypes());
private static readonly (string DataFormat, ClipboardFormat ClipboardFormat)[] DataFormats = private static readonly (string DataFormat, ClipboardFormat ClipboardFormat)[] DataFormats =
[ [
@ -57,7 +57,7 @@ internal static class DataPackageHelpers
{ {
availableFormats |= ClipboardFormat.File; availableFormats |= ClipboardFormat.File;
if (ImageFileTypes.Contains(file.FileType)) if (ImageFileTypes.Value.Contains(file.FileType))
{ {
availableFormats |= ClipboardFormat.Image; availableFormats |= ClipboardFormat.Image;
} }
@ -148,4 +148,9 @@ internal static class DataPackageHelpers
return null; return null;
} }
private static HashSet<string> GetImageFileTypes() =>
BitmapDecoder.GetDecoderInformationEnumerator()
.SelectMany(di => di.FileExtensions)
.ToHashSet(StringComparer.InvariantCultureIgnoreCase);
} }