For what it's worth, here's the function my picture manager app uses to process
uploaded images.
Summary: The parameter is the full path to the uploaded image. The function
creates the following:
1) A copy of the image (known as the SOURCE IMAGE)
2) A "base" image (basically a mid-size image no greater than 500x428 pixel
dimensions)
3) A thumbnail (no greater than 150x150 pixel dimensions
Hope it helps!
M.
Public Function ProcessImageFile(ByVal ProcessFilePath As String)
'ORIGINAL IMAGE
Dim ProcessFileName As String = Path.GetFileName(ProcessFilePath)
Dim ProcessImage As System.Drawing.Image
'SOURCE IMAGE
Dim SourceFileName As String = "(SOURCE_" & ImageID & ") " &
ProcessFileName
Dim SourceFilePath As String = SourcePath & SourceFileName
'BASE IMAGE
Dim BaseFileName As String = "(BASE_" & ImageID & ") " & ProcessFileName
Dim BaseFilePath As String = BasePath & BaseFileName
'THUMB IMAGE
Dim ThumbFileName As String = "(THUMB_" & ImageID & ") " &
ProcessFileName
Dim ThumbFilePath As String = ThumbPath & ThumbFileName
Dim ThumbImage As System.Drawing.Image
'CREATE SOURCE IMAGE
File.Copy(ProcessFilePath, SourceFilePath)
'OPEN PROCESS FILE
ProcessImage = ProcessImage.FromFile(ProcessFilePath)
'CREATE BASE IMAGE
Dim inp As New System.IntPtr
Dim BaseImageWidth As Integer
Dim BaseImageHeight As Integer
Dim BaseImageNewHeight As Integer
BaseImageWidth = ProcessImage.Width
BaseImageHeight = ProcessImage.Height
If BaseImageWidth > 500 Then
BaseImageWidth = 500
BaseImageHeight = ProcessImage.Height * BaseImageWidth /
ProcessImage.Width
End If
If BaseImageHeight > 428 Then
BaseImageNewHeight = 428
BaseImageWidth = BaseImageWidth * BaseImageNewHeight /
BaseImageHeight
BaseImageHeight = 428
End If
Dim BaseImageBitmap As New Bitmap(BaseImageWidth, BaseImageHeight,
ProcessImage.PixelFormat.Format24bppRgb)
Dim BaseImageGraphics As Graphics = Graphics.FromImage(BaseImageBitmap)
BaseImageGraphics.DrawImage(ProcessImage, 0, 0, BaseImageBitmap.Width,
BaseImageBitmap.Height)
BaseImageBitmap.Save(BaseFilePath, ProcessImage.RawFormat)
BaseImageGraphics.Dispose()
BaseImageGraphics = Nothing
BaseImageBitmap.Dispose()
BaseImageBitmap = Nothing
'CREATE THUMBNAIL
If BaseImageWidth > 150 Then
BaseImageWidth = 150
BaseImageHeight = ProcessImage.Height * BaseImageWidth /
ProcessImage.Width
End If
If BaseImageHeight > 150 Then
BaseImageNewHeight = 150
BaseImageWidth = BaseImageWidth * BaseImageNewHeight /
BaseImageHeight
BaseImageHeight = 150
End If
ThumbImage = ProcessImage.GetThumbnailImage(BaseImageWidth,
BaseImageHeight, Nothing, inp)
ThumbImage.Save(ThumbFilePath, ProcessImage.RawFormat)
'RELEASE FILES
ProcessImage.Dispose()
ProcessImage = Nothing
ThumbImage.Dispose()
ThumbImage = Nothing
End Function
________________________________
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf
Of Falls, Travis D (HTSC, CASD)
Sent: Thursday, November 10, 2005 9:43 AM
To: [email protected]
Subject: [AspNetAnyQuestionIsOk] Resize Images
I would like to write or find an open source a modular in C# that looks at a
directory and takes all the images in it and creates thumbnails, mediums, and
large equivalents. Does anyone have any advice, links, thoughts? Basically I
am tired of resizing images I put up on the web. I want to build a photo album
type of mod but I have seen any that do this simply. Thanks.
Travis D. Falls | Consultant RAFT.Net IT | 860.547.4070 | [EMAIL PROTECTED]
*************************************************************************
This communication, including attachments, is
for the exclusive use of addressee and may contain proprietary,
confidential and/or privileged information. If you are not the intended
recipient, any use, copying, disclosure, dissemination or distribution is
strictly prohibited. If you are not the intended recipient, please notify
the sender immediately by return e-mail, delete this communication and
destroy all copies.
*************************************************************************
________________________________
YAHOO! GROUPS LINKS
* Visit your group "AspNetAnyQuestionIsOk
<http://groups.yahoo.com/group/AspNetAnyQuestionIsOk> " on the web.
* To unsubscribe from this group, send an email to:
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
* Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service
<http://docs.yahoo.com/info/terms/> .
________________________________
[Non-text portions of this message have been removed]
------------------------ Yahoo! Groups Sponsor --------------------~-->
Get Bzzzy! (real tools to help you find a job). Welcome to the Sweet Life.
http://us.click.yahoo.com/A77XvD/vlQLAA/TtwFAA/saFolB/TM
--------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/AspNetAnyQuestionIsOk/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/