Hello,
I'm trying to automatically resize images when they're being uploaded. After reading on the forums for a while, I found out I can use a FileSystemContentProvider for this.
Here's what I've come up with:
This works fine, but as you can see the new width of the image (500) is hard coded. How can I turn this into a parameter?
We access the page with the Editor on it like this: /TextEditor.aspx?textid=1&ImageWidth=500
How can we pass the ImageWidth parameter in the querystring to our implementation of the FileSystemContentProvider?
Regards,
Kristof
I'm trying to automatically resize images when they're being uploaded. After reading on the forums for a while, I found out I can use a FileSystemContentProvider for this.
Here's what I've come up with:
public class TextEditor : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { radEditor.ImageManager.ContentProviderTypeName = typeof(MyResizer).AssemblyQualifiedName; radEditor.ImageManager.ViewPaths = new[] { "~/Images" }; radEditor.ImageManager.UploadPaths = new[] { "~/Images" }; radEditor.ImageManager.DeletePaths = new[] { "~/Images" }; }}public class MyResizer : FileSystemContentProvider{ public MyResizer(HttpContext context, string[] searchPatterns, string[] viewPaths, string[] uploadPaths, string[] deletePaths, string selectedUrl, string selectedItemTag) : base(context, searchPatterns, viewPaths, uploadPaths, deletePaths, selectedUrl, selectedItemTag) { } public override string StoreFile(Telerik.Web.UI.UploadedFile file, string path, string name, params string[] arguments) { string result = base.StoreFile(file, path, name, arguments); using (System.Drawing.Image originalImage = Bitmap.FromStream(file.InputStream)) { int originalWidth = originalImage.Width; int originalHeight = originalImage.Height; int newWidth = 500; int newHeight = originalHeight / originalWidth * newWidth; System.Drawing.Image resizedImage = ResizeImage(originalImage, newWidth, newHeight); string fileName = Path.Combine(path, name); resizedImage.Save(Context.Server.MapPath(fileName)); } return result; } private Image ResizeImage(Image originalImage, int newWidth, int newHeight) { // Resize Image }}This works fine, but as you can see the new width of the image (500) is hard coded. How can I turn this into a parameter?
We access the page with the Editor on it like this: /TextEditor.aspx?textid=1&ImageWidth=500
How can we pass the ImageWidth parameter in the querystring to our implementation of the FileSystemContentProvider?
Regards,
Kristof
