When I started working on this initially, I started looking into open source tools for this, after spending couple of hours on open source tools I suddenly jumped into oracle site and was pleased to see a good support for image processing in oracle.
Oracle provides support to create thumbnail of images stored as blob.
Here is simplest way to create image thumbnails.
Create a table that will store the original image and the thumbnail image content as blob.
CREATE TABLE test_thumbnail
(
id NUMERIC(12) PRIMARY KEY,
image_content BLOB,
thumbnail_content BLOB,
);
Create a stored procedure that will update the thumbnail_content field after image is stored in the database.
create or replace PROCEDURE IMAGE_THUMB_PROCEDURE (imgId IN NUMBER , imgAttribute IN varchar2) AS
imageId integer := 0;
verb varchar2(100);
src_blob BLOB;
dst_blob BLOB;
BEGIN
imageId := imgId;
verb := imgAttribute;
update test_thumbnail set thumbnail_content=empty_blob() where id = imageId;
select image_content into src_blob from test_thumbnail where id = imageId;
select thumbnail_content into dst_blob from test_thumbnail where id = imageId for update;
ordsys.ordimage.processCopy(src_blob ,verb ,dst_blob);
update test_thumbnail set thumbnail_content = dst_blob where id = imageId;
END IMAGE_THUMB_PROCEDURE;
Invoke the stored procedure passing the appropriate imgAttribute, passing different kind of image attributes you can process the original image content, for scaling down the image to a thumbnail of 100x100 pixels, pass the following parameter:
“maxscale=100 100 fileformat=jfif”
Maxscale is the size of the generated image and fileformat has its obvious meaning.
The method ordsys.ordimage.processCopy(src_blob ,verb ,dst_blob) copy a source blob into a destination blob doing the processing as per attributes passed as verb.
For more details on oracle media solution support please read the following article:
http://www.oracle.com/technology/sample_code/products/intermedia/index.html
Once the stored procedure is invoked image thumbnail is stored as blob in field thumbnail_content.
Oracle provides support to create thumbnail of images stored as blob.
Here is simplest way to create image thumbnails.
Create a table that will store the original image and the thumbnail image content as blob.
CREATE TABLE test_thumbnail
(
id NUMERIC(12) PRIMARY KEY,
image_content BLOB,
thumbnail_content BLOB,
);
Create a stored procedure that will update the thumbnail_content field after image is stored in the database.
create or replace PROCEDURE IMAGE_THUMB_PROCEDURE (imgId IN NUMBER , imgAttribute IN varchar2) AS
imageId integer := 0;
verb varchar2(100);
src_blob BLOB;
dst_blob BLOB;
BEGIN
imageId := imgId;
verb := imgAttribute;
update test_thumbnail set thumbnail_content=empty_blob() where id = imageId;
select image_content into src_blob from test_thumbnail where id = imageId;
select thumbnail_content into dst_blob from test_thumbnail where id = imageId for update;
ordsys.ordimage.processCopy(src_blob ,verb ,dst_blob);
update test_thumbnail set thumbnail_content = dst_blob where id = imageId;
END IMAGE_THUMB_PROCEDURE;
Invoke the stored procedure passing the appropriate imgAttribute, passing different kind of image attributes you can process the original image content, for scaling down the image to a thumbnail of 100x100 pixels, pass the following parameter:
“maxscale=100 100 fileformat=jfif”
Maxscale is the size of the generated image and fileformat has its obvious meaning.
The method ordsys.ordimage.processCopy(src_blob ,verb ,dst_blob) copy a source blob into a destination blob doing the processing as per attributes passed as verb.
For more details on oracle media solution support please read the following article:
http://www.oracle.com/technology/sample_code/products/intermedia/index.html
Once the stored procedure is invoked image thumbnail is stored as blob in field thumbnail_content.
Comments
Post a Comment