Solved

Using ASP.VBScript how do I resize a picture that I have uploaded

Posted on 2008-10-24
6
1,171 Views
Last Modified: 2012-05-05
I am uploading pictures to a server. Sometimes people upload pictures that are too large. I want to be able to resize the pictures to width='250' and the height= a size relative to the original image size. Right now my page can upload the image and retrieve it's dimansions which it stores in two variables called myWidth and myHeight. How can I resize the image? Thanks for any help. I have attached my code below if anyone needs to see it.

Here is the page to see what it does now:
http://www.glowfishtw.com/benzleporcelain/productadd.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/dsnvessels.asp" -->
<!--#include file="Upload.asp" -->
<%
'Upload the image file and get reference to component
Dim Uploader, File
Set Uploader = GetASPUploader
 
'Use AddFile method to add file objects and change their properties as needed
Set File = Uploader.AddFile("file") 
 
'The the properties of the upload
File.ValidFileTypes = "pdf,jpg,gif,bmp,png"
File.MaxSize = 10240*1024
File.Overwrite = false 'Do not overwrite, create unique filename 
 
'Set the folder name to where the file will be uploaded to
Uploader.Destination = "Images" 
 
'Set longer timeout for large files if needed
Server.ScriptTimeout = 900
 
'Enable error handling to catch and handle errors during upload. For example, if user
'  cancels the upload or attempts to upload files of invalid (unallowed) type or size,
'  ASPUploader will raise an exception (error) with relevant description
On Error Resume Next
 
'Start receiving and saving file(s):
Uploader.Upload
 
'Check for errors:
If Err Then
  'Redirect with error message
  Response.Write err.description
  Response.End()
End If
 
 
'Add the details of the uploaded file to the database
Dim myFile, myDescrition, title, price, myWidth, myHeight, resolvedPath
resolvedPath = Server.MapPath(Uploader.Destination & "/" & File.name)
myFile="images/" & File.Name
myDescription=Uploader.Form("description")
title=Uploader.Form("title")
price=Uploader.Form("price")
Call sImageProperties(resolvedPath) 
 
myFile = Replace(myFile, "'", "''")
myDescription = Replace(myDescription, "'", "''")
title = Replace(title, "'", "''")
price = Replace(price, "'", "''")
 
response.write(myFile)
response.write(myDescription)
response.write(title)
response.write(price)
response.write("<br />")
response.write("resolvedpath=")
response.write(resolvedPath)
response.write("<br />")
response.write("width=")
response.write(myWidth)
response.write("<br />")
response.write("height=")
response.write(myHeight)
response.write("<br />")
response.write(Uploader.Destination)
 
 
 
 
 
set cadddetail = Server.CreateObject("ADODB.Command")
cadddetail.ActiveConnection = MM_dsnvessels_STRING
cadddetail.CommandText = "INSERT INTO products (ImageURL, name, description, price)  VALUES ( '" & myFile & "', '" & title & "', '" & myDescription & "', '" & price & "') "
cadddetail.CommandType = 1
cadddetail.CommandTimeout = 0
cadddetail.Prepared = true
cadddetail.Execute()
 
 
 
'Finally, void the object
 
 
Set Uploader=Nothing 
 
Sub sImageProperties(vImage)
  Dim image, fs
  Set fs=CreateObject("Scripting.FileSystemObject")
  If Not fs.fileExists(vImage) Then Exit Sub
  Set image = loadpicture(vImage)
  myWidth = Round(image.width / 26.4583)
  myHeight = Round(image.height / 26.4583)
  Set image = Nothing
  Set fs=Nothing
End Sub
%> 
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style1 {
	font-size: 18px;
	font-weight: bold;
}
-->
</style>
</head>
 
<body>
<p class="style1">New Product  uploaded</p>
<p><a href="productadd.asp">add a product </a></p>
<p><a href="productview.asp">delete/edit a product </a></p>
<p><a href="benzleupdate.asp">return to Benzle update </a></p>
<p><a href="index.asp">view Benzle Porcelain home page </a></p>
</body>
</html>

Open in new window

0
Comment
Question by:elliottbenzle
  • 3
  • 2
6 Comments
 
LVL 12

Expert Comment

by:R_Harrison
ID: 22796002
Slightly confused?  Normally you would just add the width tag to the <img> as below.

<img src="somepagethatgetstheimage.asp" width="250">

If you don't specify a height, the image height will be automatically adjusted to maintain the correct aspect ratio.

I am missing something?


0
 
LVL 9

Accepted Solution

by:
CCongdon earned 250 total points
ID: 22796177
@R Harrison: One problem is that if someone uploads a 10MB file, then all the users have to download that entire 10MB file for their browser to resize. If you get several of those on the same page..well then...that sucks.
I know a paid component isn't always the best solution, but I use aspJPEG. (www.persits.com). It does all kinds of image maniplulation include file-based (server-side) resize of the file down to a more manage-able size.
0
 
LVL 12

Expert Comment

by:R_Harrison
ID: 22796475
CCongdon:
Yeah, but you can always limit the size of the upload... anyway that wasn't the problem stated.  If he wants to actually change the image to a smaller version then he will need an external component...
0
Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

 
LVL 9

Expert Comment

by:CCongdon
ID: 22796537
@R Harrison
Yeah, that's why I think the general public shouldn't be allowed cameras greater than a couple of megapixels unless they get a certificate showing that the understand how to resize photos before e-mailing/uploading them. :)
0
 
LVL 12

Expert Comment

by:R_Harrison
ID: 22796651
@CCongdon

With you on that one!  A 6 megapixal image squashed to 200 pixels, why oh why!
0
 
LVL 14

Assisted Solution

by:yessirnosir
yessirnosir earned 250 total points
ID: 22797312
What you are trying to accomplish is very common.  I'm a PHP guy so I can't help you with your code, but if you google "asp image resize upload" you'll get tons of hits.  eg. there is a good tutorial for a free way of doing this here:
http://www.codeproject.com/KB/web-image/pnguploader.aspx
It requires .NET rather than classic ASP, but it looks straightforward to implement.
The particular example converts the uploads to PNG format, but you can change that to your choice.
There are also links on the page to several other related examples, and down in the comments section under "good article, but i have a better solution" someone posted another complete solution that looks pretty good.
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Help with stored procedure 30 64
ASP Classic - Load test 2 49
Auto Submit on dropdown box 14 64
Select record with the most recent date 14 54
I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
In a recent question (https://www.experts-exchange.com/questions/28997919/Pagination-in-Adobe-Acrobat.html) here at Experts Exchange, a member asked how to add page numbers to a PDF file using Adobe Acrobat XI Pro. This short video Micro Tutorial sh…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now