Solved

Crop Binary Image ASP

Posted on 2010-08-16
7
696 Views
Last Modified: 2012-05-10
I have some images saved in a database as binary. I need to crop the images and re-save them as binary into the database.

How can I do this with classic ASP?
0
Comment
Question by:synergiq
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 28

Expert Comment

by:sybe
ID: 33449163
For classic ASP, You need a third party component to do this. Like ASPJPEG (http://www.aspjpeg.com/index.html). I don't know of any non-commercial third party component which can do this.

Alternatively there are some freeware desktop applications which can crop in batch. You could write a vbscript (.vbs) to pull the images from the database to hd, use that tool to batch-crop them and then another vbscript to put the cropped binaries into the database.

But that is probably not going to function live in a web-application.
0
 
LVL 2

Author Comment

by:synergiq
ID: 33453123
Ok. So using ASPJPEG, I've managed to get the image from the DB, crop it to the correct dimensions but now I need to put it back into the DB. Trying to just do an update doesn't work, do I need to do something/convert it to something first?

I'm using a Sybase database if that means anything.
0
 
LVL 28

Expert Comment

by:sybe
ID: 33453163
How are you trying to do that?

I'd read the binary of the image into a ADODB.Stream and from that update a recordset, using the AppendChunk method:

http://www.w3schools.com/ado/met_para_appendchunk.asp
0
Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

 
LVL 2

Author Comment

by:synergiq
ID: 33453237
Could you give me an example of how I would do that?
0
 
LVL 28

Accepted Solution

by:
sybe earned 500 total points
ID: 33453429
This is the basic code. Of course you might to do things in a loop, and with Option Explicit you need to DIM the variables.


Set oStream = Server.CreateObject("ADODB.Stream")
oStream.Type = 1 ' adTypeBinary
oStream.LoadFromFile "c:\files\image_1.jpg"

Set oRS = Server.CreateObject("ADODB.RecordSet")
oRS.Open "SELECT fieldname FROM mytable WHERE id = 967",  MyConnection, 1, 3
oRS("fieldname").AppendChunk oStream.Read
oRS.Update
oRS.Close

Open in new window

0
 
LVL 2

Author Comment

by:synergiq
ID: 33453580
I don't have access to the actual image to stream though, only the Jpeg.Binary I get from ASPJPEG.

The code below gets the image from the DB (as binary), opens it with ASPJPEG and crops it. Now I just need to put it back in the DB in place of the old one.
Set GetImg_cmd = Server.CreateObject ("ADODB.Command")
GetImg_cmd.ActiveConnection = MM_MobliqConn_STRING
GetImg_cmd.CommandText = "select image_field from table where image_id = '1234'"
GetImg_cmd.Prepared = true
Set GetImg = GetImg_cmd.Execute
GetImg_numRows = 0


Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.OpenBinary(GetImg("image_field").value)
Jpeg.Crop 0, 0, 80, 60

GetImg.close()
set GetImg= nothing

Open in new window

0
 
LVL 2

Author Comment

by:synergiq
ID: 33453628
I've just cracked it. Thanks for the help!
Set rs = Server.CreateObject("adodb.recordset")
rs.Open "select image_field from table where fimage_id = '1234'", myConn, 1, 3
rs("image_field").AppendChunk Jpeg.Binary
rs.Update
rs.Close

Open in new window

0

Featured Post

Report: Liquid Web beats Amazon, Rackspace & More

A study by performance analyst firm Cloud Spectator finds that Liquid Web beats rivals Amazon, Rackspace and DigitalOcean when it comes to website and cloud application performance.

Question has a verified solution.

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

Color can increase conversions, create feelings of warmth or even incite people to get behind a cause. If you want your website to really impact site visitors, then it is vital to consider the impact color has on them.
CTAs encourage people to do something specific to show interest in your company, product or service. Keep reading to learn why CTAs should always be thought of as extremely important, albeit small, sections of websites.
The viewer will get a basic understanding of what section 508 compliance can entail, learn about skip navigation links, alt text, transcripts, and font size controls.
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

739 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