Skip to content

Commit 0da92bb

Browse files
authored
Merge pull request #348 from d2phap/develop
Develop v5.1
2 parents a3f99ca + 5242869 commit 0da92bb

33 files changed

+1114
-116
lines changed

Setup/Languages/Korean.iglang

Lines changed: 268 additions & 0 deletions
Large diffs are not rendered by default.

Setup/Languages/Slovenian.iglang

Lines changed: 268 additions & 0 deletions
Large diffs are not rendered by default.

Setup/Languages/Swedish.iglang

Lines changed: 268 additions & 0 deletions
Large diffs are not rendered by default.

Setup/setup.iss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
33

44
#define MyAppName "ImageGlass"
5-
#define MyAppVersion "5.0.5.7"
5+
#define MyAppVersion "5.1.5.20"
66
#define MyAppPublisher "Duong Dieu Phap"
77
#define MyAppURL "http://www.imageglass.org"
88
#define MyAppExeName "ImageGlass.exe"

Source/Components/ImageGlass.Core/BitmapBooster.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System;
22
using System.Drawing;
33
using System.Drawing.Imaging;
4+
//using System.Windows;
5+
using System.Windows.Media.Imaging;
46

57
namespace ImageGlass.Core
68
{
@@ -79,5 +81,25 @@ public static int Max(params int[] values)
7981
}
8082
return ret;
8183
}
84+
85+
86+
/// <summary>
87+
/// Convert BitmapSource to Bitmap
88+
/// </summary>
89+
/// <param name="bitmapsource"></param>
90+
/// <returns></returns>
91+
public static Bitmap BitmapFromSource(BitmapSource bitmapsource)
92+
{
93+
Bitmap bitmap;
94+
using (System.IO.MemoryStream outStream = new System.IO.MemoryStream())
95+
{
96+
BitmapEncoder enc = new BmpBitmapEncoder();
97+
98+
enc.Frames.Add(BitmapFrame.Create(bitmapsource));
99+
enc.Save(outStream);
100+
bitmap = new Bitmap(outStream);
101+
}
102+
return bitmap;
103+
}
82104
}
83105
}

Source/Components/ImageGlass.Core/ImageGlass.Core.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@
8181
<Reference Include="IconLib, Version=0.73.0.0, Culture=neutral, processorArchitecture=MSIL">
8282
<HintPath>..\..\packages\IconLib.Unofficial.0.73.0\lib\net20\IconLib.dll</HintPath>
8383
</Reference>
84-
<Reference Include="Magick.NET-Q16-AnyCPU, Version=7.4.4.0, Culture=neutral, PublicKeyToken=2004825badfa91ec, processorArchitecture=MSIL">
85-
<HintPath>..\..\packages\Magick.NET-Q16-AnyCPU.7.4.4\lib\net40\Magick.NET-Q16-AnyCPU.dll</HintPath>
84+
<Reference Include="Magick.NET-Q16-AnyCPU, Version=7.4.5.0, Culture=neutral, PublicKeyToken=2004825badfa91ec, processorArchitecture=MSIL">
85+
<HintPath>..\..\packages\Magick.NET-Q16-AnyCPU.7.4.5\lib\net40\Magick.NET-Q16-AnyCPU.dll</HintPath>
8686
</Reference>
8787
<Reference Include="System" />
8888
<Reference Include="System.Data" />

Source/Components/ImageGlass.Core/Interpreter.cs

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,20 @@ void GetBitmapFromFile()
7373
}
7474

7575

76+
//using (var magicColl = new MagickImageCollection())
77+
//{
78+
// magicColl.Read(new FileInfo(path), settings);
79+
80+
// if (magicColl.Count > 0)
81+
// {
82+
// magicColl[0].Quality = 100;
83+
// magicColl[0].AddProfile(ColorProfile.SRGB);
84+
85+
// bmp = BitmapBooster.BitmapFromSource(magicColl[0].ToBitmapSource());
86+
// }
87+
//}
88+
89+
7690
using (var magicImg = new MagickImage(path, settings))
7791
{
7892
magicImg.Quality = 100;
@@ -101,7 +115,22 @@ void GetBitmapFromFile()
101115
//corect the image color
102116
magicImg.AddProfile(ColorProfile.SRGB);
103117

104-
bmp = magicImg.ToBitmap();
118+
if (ext.CompareTo(".heic") == 0)
119+
{
120+
// NOTE: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
121+
// There is a bug with Magick.NET v7.4.5
122+
// that ToBitmap() function will return wrong colorspace:
123+
// https://github.com/dlemstra/Magick.NET/issues/153#issuecomment-388080405
124+
// ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
125+
// Hence, we need to export to BitmapSource then convert to Bitmap again
126+
bmp = BitmapBooster.BitmapFromSource(magicImg.ToBitmapSource());
127+
}
128+
else
129+
{
130+
bmp = magicImg.ToBitmap();
131+
}
132+
133+
105134
}
106135
}
107136

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="IconLib.Unofficial" version="0.73.0" targetFramework="net471" />
4-
<package id="Magick.NET-Q16-AnyCPU" version="7.4.4" targetFramework="net471" />
4+
<package id="Magick.NET-Q16-AnyCPU" version="7.4.5" targetFramework="net471" />
55
</packages>

Source/Components/ImageGlass.ImageListView/ImageGlass.ImageListView.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@
7878
<Prefer32Bit>false</Prefer32Bit>
7979
</PropertyGroup>
8080
<ItemGroup>
81-
<Reference Include="Magick.NET-Q16-AnyCPU, Version=7.4.4.0, Culture=neutral, PublicKeyToken=2004825badfa91ec, processorArchitecture=MSIL">
82-
<HintPath>..\..\packages\Magick.NET-Q16-AnyCPU.7.4.4\lib\net40\Magick.NET-Q16-AnyCPU.dll</HintPath>
81+
<Reference Include="Magick.NET-Q16-AnyCPU, Version=7.4.5.0, Culture=neutral, PublicKeyToken=2004825badfa91ec, processorArchitecture=MSIL">
82+
<HintPath>..\..\packages\Magick.NET-Q16-AnyCPU.7.4.5\lib\net40\Magick.NET-Q16-AnyCPU.dll</HintPath>
8383
</Reference>
8484
<Reference Include="PresentationCore">
8585
<RequiredTargetFramework>3.0</RequiredTargetFramework>

Source/Components/ImageGlass.ImageListView/ThumbnailExtractor.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,14 @@ internal static Image GetThumbnailBmp(string filename, Size size, UseEmbeddedThu
281281
// Revert to source image if an embedded thumbnail of required size was not found.
282282
if (source == null)
283283
{
284-
source = magicImg.ToBitmap();
284+
if (ext.CompareTo(".heic") == 0)
285+
{
286+
source = Core.BitmapBooster.BitmapFromSource(magicImg.ToBitmapSource());
287+
}
288+
else
289+
{
290+
source = magicImg.ToBitmap();
291+
}
285292
}
286293

287294
}//END using MagickImage

0 commit comments

Comments
 (0)