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