Академический Документы
Профессиональный Документы
Культура Документы
Inicio
sobre nosotros
posts destacados
publicaciones
eventos
trabaja en avanttic
Existen varias opciones para almacenar imágenes en BBDD Oracle. La manera más común es utilizar una
columna de tipo BLOB y cargar una imagen como contenido binario.
A partir de la versión 11g, Oracle ha introducido Oracle Multimedia (anteriormente conocido como Oracle
InterMedia), una extensión que permite guardar imágenes, audio, vídeo y otra información multimedial.
Oracle Multimedia introduce los objetos de tipo ORDAudio, ORDDoc, ORDImage, ORDVideo, and
SI_StillImage y métodos para:
En otras palabras, Oracle Multimedia permite manipular imágenes con una simple instrucción SQL.
En este post, el enfoque será en las operaciones que se pueden realizar sobre imágenes.
Empezamos creando una tabla donde guardaremos una imagen en formato TIFF.
Utilizando los métodos del objeto ORDSYS.ORDImage se pueden visualizar las propiedades de la imagen.
DECLARE
image ORDSYS.ORDImage;
compression_format VARCHAR2(4000);
img_height NUMBER;
img_width NUMBER;
content_size NUMBER;
metav XMLSequenceType;
properties_match BOOLEAN;
BEGIN
-- Cargamos la imagen en una variable
SELECT TIFF_IMG INTO image FROM AVT_IMG
WHERE ID=1;
-- Averiguamos que sea posible leer las propiedades de la imagen
properties_match := image.checkProperties();
IF properties_match THEN
DBMS_OUTPUT.PUT_LINE('Check Properties succeeded');
ELSE
DBMS_OUTPUT.PUT_LINE('Check Properties failed');
END IF;
-- Extraemos las propiedades de la imagen
compression_format := image.getCompressionFormat();
img_height := image.getHeight();
img_width := image.getWidth();
content_size := image.getContentLength();
DBMS_OUTPUT.PUT_LINE('Formato de compresión: ' || compression_format);
DBMS_OUTPUT.PUT_LINE('Alto: ' || img_height);
DBMS_OUTPUT.PUT_LINE('Ancho: ' || img_width);
DBMS_OUTPUT.PUT_LINE('Tamaño: ' || content_size);
COMMIT;
END;
/
y coincide con las propiedades de la imagen que estamos utilizando como ejemplo.
ALTER TABLE AVT_IMG ADD (JPEG_IMG ORDSYS.ORDImage, TIFF_BLOB BLOB, JPEG_BLOB BLOB);
para poder guardar el contenido binario (sin metadatos) de la imagen y su copia en formato JPEG.
Para extraer el contenido BLOB de la imagen (sin metadatos), existe el método getContent().
UPDATE AVT_IMG
SET TIFF_BLOB = ordsys.ordimage.getContent(TIFF_IMG);
COMMIT;
Para realizar una conversión de formato, por ejemplo de TIFF a JPEG, se puede utilizar el método processCopy().
DECLARE
imgTiff blob;
imgJpeg blob;
BEGIN
UPDATE AVT_IMG SET JPEG_BLOB = empty_blob()
RETURNING TIFF_BLOB, JPEG_BLOB
INTO imgTiff, imgJpeg;
-- El metodo recibe como parametros:
-- * imagen origen
-- * cadena que especifica el tipo de transformación a realizar
-- * imagen destino
ordsys.ordimage.processCopy(imgTiff, 'fileformat=jpeg', imgJpeg);
UPDATE AVT_IMG SET JPEG_BLOB = imgJpeg;
COMMIT;
END;
/
Se pueden realizar conversiones entre los siguientes formatos: BMPF, CALS, GIFF, JFIF, PBMF, PGMF, PICT,
PNGF, PNMF, PPMF, RASF, RPIX, TGAF, TIFF, WBMP.
Para crear el objeto JPEG_IMG a partir del BLOB en JPEG podemos utilizar la instrucción:
UPDATE AVT_IMG
SET JPEG_IMG =
ordsys.ordimage(ordsys.ordsource(JPEG_BLOB, null, null, null, sysdate, 1)
,null, null, null, null, null, null, null );
Los métodos process() (que sobrescribe la imagen origen con el resultado de la transformación) y processCopy()
permiten realizar transformaciones más complejas como por ejemplo, ajustar el contraste, escalar o rotar la imagen.
El ejemplo siguiente realiza una rotación de 90 grados de la imagen en JPEG.
DECLARE
imgTiff blob;
imgJpeg blob;
BEGIN
UPDATE AVT_IMG set JPEG_BLOB=JPEG_BLOB
RETURNING JPEG_BLOB
INTO imgJpeg;
ordsys.ordimage.process(imgJpeg, 'rotate=90');
UPDATE AVT_IMG SET JPEG_BLOB = imgJpeg;
COMMIT;
END;
Con estos ejemplos se ha querido dar una breve demostración de que Oracle Multimedia ofrece una solución
versátil para el tratamiento de datos multimediales.
Para más información, consultar la documentación oficial en http://www.oracle.com/pls/db112/portal.portal_db?
selected=7&frame=#oracle_multimedia.
S hare this:
LinkedIn 1 Twitter
Me gusta
A un bloguero le gusta esto.
Relacionado
Razones para utilizar Big Data SQL Posts más visitados de avanttic blog Oracle Warehouse Builder (OWB) vs
v 3.1 durante el 2014 Oracle Data Integrator (ODI)
En "Business Analytics" En "avanttic" En "Business Analytics"
Categorías:SQL Etiquetas: BLOB, Compression, Conversion formato, Oracle Multimedia, ORDImage, Rotar
imagenes
Comentarios (0) Trackbacks (0) Deja un comentario Trackback
1. No trackbacks yet.
Responder
avanttic os desea Felices Fiestas y un próspero año 2014 Crónica del Taller: Seguridad y alta disponibilidad de la
información en las administraciones locales
RSS feed
Follow us on:
Categorías
Actualidad (95)
ADF / Java (64)
avanttic (95)
Business Analytics (46)
Cloud (29)
Database (27)
Eventos (49)
Forms & Reports (48)
GoldenGate (6)
Hardware (9)
Herramientas (10)
JavaScript (6)
JDeveloper (4)
MAF / ADF Mobile (16)
Metodología (5)
RR. HH. (13)
Seguridad (17)
Sistemas (30)
SOA / BPM / WebCenter (29)
SQL (7)
Virtual Machine (7)
WebLogic (12)
ADF / Java ADF 11g ADF 12c ADF Faces ADF mobile ADF tips Administración Alta
Disponibilidad BestPractices BICS Big Data BI Publisher BP M Business Analytics Business
Intelligence Casos de éxito clientes Cloud Cuore Customer Experience Database Digital Transformation
disaster recovery Endeca Esp ecialización Exadata Forms & Reports Fusion Middleware
GoldenGate Herramientas IaaS Integración IoT JavaScript JDeveloper Licenciamiento MAF MCS
Migración Mobile Modernización movilidad M y SQL Noticias OBI OBI 11g ODI ODI 12C OOW OPN
ORACLE Oracleando Oracle Application Server Oracle Database Oracle Database 11g
Oracle Cloud
Oracle Database 12c Oracle Data Integrator Oracle Enterp rise M anager Oracle Linux Oracle Mobile Cloud
Service Oracle Mobile P latform Oracle Service Bus Oracle VM PaaS P artner P CS pl/sql productividad
Reducción de costes Seguridad SM ACT SOA / BPM / WebCenter Webcenter WebLogic Web Service
Para suscribirte a nuestro blog y recibir las actualizaciones en tiempo real via email.
Subscríbete!
Alberto Cubillo
Ana Ruiz
Ana Díaz
Angel Freire
Antonio José Molina
avanttic
Diana Pujagut
Guillermo J. Solla
Helena Lecina
Israel Gatell
Javier Gea
Javier Llorente
Jesús García
Javier Villafranca
Joan Massegú
Jordi Piñol
Jordi Sansó
Jose Legido
Mikel Garzo
Leonardo Torres
Miriam Marín
Monica Esteve
Raúl Tarifa
Rebeca Guillén
Rafael Planella
Rafael Prada
Rubén Rodríguez
Sonsoles Moreno
Xavier Ribas
Arriba
Blog de WordPress.com.