DO NOT DOWNLOAD. DOWNLOAD LATEST STABLE FROM RELEASE TAB
Added Image Cropper datatype [TFS Changeset #55169]
This commit is contained in:
106
components/editorControls/imagecropper/ImageInfo.cs
Normal file
106
components/editorControls/imagecropper/ImageInfo.cs
Normal file
@@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Web;
|
||||
using umbraco.editorControls.imagecropper;
|
||||
|
||||
namespace umbraco.editorControls.imagecropper
|
||||
{
|
||||
public class ImageInfo
|
||||
{
|
||||
public Image image { get; set; }
|
||||
public string Name { get; set; }
|
||||
public int Width { get; set; }
|
||||
public int Height { get; set; }
|
||||
public float Aspect { get; set; }
|
||||
public DateTime DateStamp { get; set; }
|
||||
public string Path { get; set; }
|
||||
public string RelativePath { get; set; }
|
||||
|
||||
public ImageInfo(string relativePath)
|
||||
{
|
||||
RelativePath = relativePath;
|
||||
Path = HttpContext.Current.Server.MapPath(relativePath);
|
||||
if (File.Exists(Path))
|
||||
{
|
||||
string fileName = Path.Substring(Path.LastIndexOf('\\') + 1);
|
||||
Name = fileName.Substring(0, fileName.LastIndexOf('.'));
|
||||
|
||||
byte[] buffer = null;
|
||||
|
||||
using (FileStream fs = new FileStream(Path, FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
buffer = new byte[fs.Length];
|
||||
fs.Read(buffer, 0, (int) fs.Length);
|
||||
fs.Close();
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
image = Image.FromStream(new MemoryStream(buffer));
|
||||
|
||||
Width = image.Width;
|
||||
Height = image.Height;
|
||||
Aspect = (float) Width/Height;
|
||||
DateStamp = File.GetLastWriteTime(Path);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
Width = 0;
|
||||
Height = 0;
|
||||
Aspect = 0;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Width = 0;
|
||||
Height = 0;
|
||||
Aspect = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Exists
|
||||
{
|
||||
get { return Width > 0 && Height > 0; }
|
||||
}
|
||||
|
||||
public string Directory
|
||||
{
|
||||
get { return Path.Substring(0, Path.LastIndexOf('\\')); }
|
||||
}
|
||||
|
||||
public void GenerateThumbnails(SaveData saveData, Config config)
|
||||
{
|
||||
if (config.GenerateImages)
|
||||
{
|
||||
for (int i = 0; i < config.presets.Count; i++)
|
||||
{
|
||||
Crop crop = (Crop) saveData.data[i];
|
||||
Preset preset = (Preset) config.presets[i];
|
||||
|
||||
// Crop rectangle bigger than actual image
|
||||
if(crop.X2 - crop.X > Width || crop.Y2 - crop.Y > Height)
|
||||
{
|
||||
crop = preset.Fit(this);
|
||||
}
|
||||
|
||||
ImageTransform.Execute(
|
||||
Path,
|
||||
String.Format("{0}_{1}", Name, preset.Name),
|
||||
crop.X,
|
||||
crop.Y,
|
||||
crop.X2 - crop.X,
|
||||
crop.Y2 - crop.Y,
|
||||
preset.TargetWidth,
|
||||
preset.TargetHeight,
|
||||
config.Quality
|
||||
);
|
||||
//BasePage bp = new BasePage();
|
||||
//bp.speechBubble(BasePage.speechBubbleIcon.error, "Error",
|
||||
// "One or more crops are out of bounds. Please correct and try again.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user