Skip site navigation (1) Skip section navigation (2)

Re: Resizing images contained in oid fields

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: juanmime(at)ono(dot)com
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Resizing images contained in oid fields
Date: 2005-03-24 01:34:39
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-admin
On Mon, Mar 21, 2005 at 05:12:52PM +0100, juanmime(at)ono(dot)com wrote:
> I have a table where an oid field is used for saving images. I'm thinking
> about getting a little snapshot of all images without downloading the full
> images. I only want to download some entire images. I'm thinking in something
> like this:
> create table images (
>   id serial primary key,
>   title varchar not null,
>   photo_id oid
> );
> select title, snapshot(photo_oid, 120, 120) as snap from images
> In this case, the snapshot function returns the resized snapshot of the original
> image.

Why not store the resized image in another column?  Retrieval would
probably be more efficient than running an algorithm over each image
every time you wanted to fetch the "snapshots" (thumbnails?).

> I think that the core of function could be similar to this:
> 1) Obtain the image
> 2) Resize the Image to new size
> 3) Return the Resized Image
> Do you know if there exists a function like this ("snapshot")?

Not in the standard PostgreSQL installation.

> Otherwise, What is the type returned by the function ? What suitable procedure
> language should I use ? What image library for the redimension ?

I'd probably make the return type bytea.  I'm sure several of the
procedural languages (PL/Perl, PL/Tcl, PL/Python) have modules that
interface to graphics libraries that can resize images; check their
respective web sites (CPAN for Perl, etc.).  If I had to write this
function I'd probably use C and ImageMagick, but I'd be more likely
to generate the thumbnails on the client side and store them in
another column.

Michael Fuhr

In response to


pgsql-admin by date

Next:From: dedyDate: 2005-03-24 03:12:30
Subject: How to move the ...
Previous:From: Andrew SullivanDate: 2005-03-23 23:36:23
Subject: Re: Any examples of companies using PG in high volume and/or large scale environs...

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group