mirror of
https://github.com/QL-Win/QuickLook.git
synced 2025-09-15 20:52:40 +00:00
Use own Pdf viewer implementation. wip on universal InfoPanel
This commit is contained in:
40
QuickLook.Plugin.LastResort/Extensions.cs
Normal file
40
QuickLook.Plugin.LastResort/Extensions.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
namespace QuickLook.Plugin.LastResort
|
||||
{
|
||||
public static class Extensions
|
||||
{
|
||||
[DllImport("gdi32")]
|
||||
private static extern int DeleteObject(IntPtr o);
|
||||
|
||||
public static BitmapSource ToBitmapSource(this Bitmap source)
|
||||
{
|
||||
var ip = source.GetHbitmap();
|
||||
BitmapSource bs = null;
|
||||
try
|
||||
{
|
||||
var data = source.LockBits(new Rectangle(0, 0, source.Width, source.Height),
|
||||
ImageLockMode.ReadOnly, source.PixelFormat);
|
||||
|
||||
bs = BitmapSource.Create(source.Width, source.Height, source.HorizontalResolution,
|
||||
source.VerticalResolution, PixelFormats.Bgra32, null,
|
||||
data.Scan0, data.Stride * source.Height, data.Stride);
|
||||
|
||||
source.UnlockBits(data);
|
||||
|
||||
bs.Freeze();
|
||||
}
|
||||
finally
|
||||
{
|
||||
DeleteObject(ip);
|
||||
}
|
||||
|
||||
return bs;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user