19. Juli 2007

Bilder in der Oracle-Datenbank: ORDIMAGE

Die Oracle-Datenbank bietet auch einiges an Funktionalität zum Umgang mit Bildern an. So ist der Datentyp OrdImage speziell für die Speicherung von Bildern vorgesehen. Gegenüber einem einfachen BLOB bietet das den Vorteil, dass man Attribute wie die Höhe, die Breite oder die Farbtiefe abgerufen oder einfache Bildoperationen (Skalieren, Umwandeln in Schwarz/Weiss) durchgeführt werden können.
Recht eindrucksvoll ist die Funktion "Metadatenextraktion", die mit nahezu allen Digitalbildern ohne großen Aufwand ausprobiert werden kann (Fast alle Digitalkameras schreiben die sog. EXIF-Metadaten in die Bilddatei). Die Vorgehensweise ist ganz einfach: Zunächst wird ein DIRECTORY-Objekt erzeugt, damit die Datenbank Zugriff auf die Bilddateien hat (Selbstverständlich können diese auch in Tabellen liegen; der Einfachheit halber nutzen wir hier jedoch das Dateisystem).
create directory bilderdir as '/path/to/bilder/directory'
/
Dann können die Metadaten einfach mit der Funktion ORDIMAGE.GETMETADATA wie folgt abgerufen werden. Die Rückgabe erfolgt als XML-Dokument.
select * from table(ordimage.getmetadata(bfilename('BILDERDIR','004.jpg')))
/

<ordImageAttributes xmlns="http://xmlns.oracle.com/ord/meta/ordimage" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/ord/meta/ordimage http://xmlns.oracle.com/ord/meta/ordimage">
  <height>853</height>
  <width>1280</width>
  <contentLength>1184957</contentLength>
  <fileFormat>JFIF</fileFormat>
  <contentFormat>24BITRGB</contentFormat>
  <compressionFormat>JPEG</compressionFormat>
  <mimeType>image/jpeg</mimeType>
</ordImageAttributes>

<exifMetadata xmlns="http://xmlns.oracle.com/ord/meta/exif" xsi:schemaLocation="http://xmlns.oracle.com/ord/meta/exif http://xmlns.oracle.com/ord/meta/exif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <TiffIfd>
    <Make tag="271">Canon</Make>
    <Model tag="272">Canon PowerShot SD700 IS</Model>
    <Orientation tag="274">top left</Orientation>
    <XResolution tag="282">300</XResolution>
    <YResolution tag="283">300</YResolution>
    <ResolutionUnit tag="296">inches</ResolutionUnit>
    <Software tag="305">Adobe Photoshop CS2 Windows</Software>
    <DateTime tag="306">2007-06-18T14:51:13.000000</DateTime>
    <YCbCrPositioning tag="531">centered</YCbCrPositioning>
  </TiffIfd>
  <ExifIfd tag="34665">
    <ExposureTime tag="33434">.002</ExposureTime>
    <FNumber tag="33437">2.8</FNumber>
    <ExifVersion tag="36864">0220</ExifVersion>
    <DateTimeOriginal tag="36867">2007-06-18T16:21:55.000000</DateTimeOriginal>
    <DateTimeDigitized tag="36868">2007-06-18T16:21:55.000000</DateTimeDigitized>
    <ComponentsConfiguration tag="37121">YCbCr</ComponentsConfiguration>
    <CompressedBitsPerPixel tag="37122">3</CompressedBitsPerPixel>
    <ShutterSpeedValue tag="37377">8.96875</ShutterSpeedValue>
    <ApertureValue tag="37378">2.96875</ApertureValue>
    <ExposureBiasValue tag="37380">0</ExposureBiasValue>
    <MaxApertureValue tag="37381">2.96875</MaxApertureValue>
    <MeteringMode tag="37383">Pattern</MeteringMode>
    <Flash tag="37385">
      <Fired>No</Fired>
      <Return>No strobe return function</Return>
      <Mode>Compulsory suppression</Mode>
      <Function>Yes</Function>
      <RedEyeReduction>No</RedEyeReduction>
    <FocalLength tag="37386">6.63</FocalLength>
    :

Keine Kommentare:

Beliebte Postings