123 lines
3.3 KiB
C#

using System;
using System.Drawing;
using System.IO;
using System.Windows.Media.Imaging;
namespace PWAPPv2.Source.DataObjects
{
public class PWImage
{
private string ImagePath;
private BitmapImage bitmap;
public string FileType { get; }
//private Bitmap bmp;
//private Bitmap thumb;
//private Bitmap zoom;
public PWImage(string path)
{
ImagePath = path;
bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(@ImagePath);
bitmap.DecodePixelWidth = 100;
bitmap.EndInit();
string extension = Path.GetExtension(path).ToLower();
if(extension == ".jpeg" || extension == ".jpg")
{
FileType = "image/jpeg";
}
else if(extension == ".png")
{
FileType = "image/png";
}
//bmp = (Bitmap)System.Drawing.Image.FromFile(ImagePath);
//thumb = resize(bmp, 50, 50);
//zoom = resize(bmp, bmp.Width, bmp.Height);
}
public string GetPath()
{
return ImagePath;
}
public BitmapImage GetBitmapImage()
{
return bitmap;
}
public string GetBase64String()
{
using (System.Drawing.Image image = System.Drawing.Image.FromFile(ImagePath))
{
using (MemoryStream m = new MemoryStream())
{
image.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();
return Convert.ToBase64String(imageBytes);
}
}
}
public string GetBase64ThumbString()
{
using (System.Drawing.Image image = System.Drawing.Image.FromFile(ImagePath))
{
Image thumb = resize(image, new Size(50, 50));
using (MemoryStream m = new MemoryStream())
{
thumb.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();
return Convert.ToBase64String(imageBytes);
}
}
}
public string GetBase64ZoomString()
{
using (System.Drawing.Image image = System.Drawing.Image.FromFile(ImagePath))
{
Image zoom = resize(image, new Size(image.Width + 800, image.Height + 800));
using (MemoryStream m = new MemoryStream())
{
zoom.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();
return Convert.ToBase64String(imageBytes);
}
}
}
private Image resize(Image toResize, Size size)
{
return new Bitmap(toResize, size);
}
public string ShortFileName()
{
return ImagePath.Substring(ImagePath.LastIndexOf("\\") + 1);
}
public string GetJsonContents()
{
string str = "'Base64FileContents':'" + GetBase64String() + "',\n" +
"'Base64ThumbContents':'" + GetBase64ThumbString() + "',\n" +
"'Base64ZoomContents':'" + GetBase64ZoomString() + "'\n";
return str;
}
}
}