ZSBD-2st-1.2-lab10.tresc-1.4-Slajd22

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Modyfikacja obrazów

Modyfikacja obrazów


Typ SI_STILLIMAGE definiuje metody, które można wykorzystać do zmiany rozmiarów, oraz zmiany typu obrazu. Metody te to: SI_CHANGEFORMAT i SI_THUMBNAIL. Metoda SI_CHANGEFORMAT zmienia format pliku na zadany, z kolei metoda SI_THUMBNAIL zmniejsza obraz tak, aby mieścił się w zadanych wymiarach. Przed wykonaniem zadań należy przygotować tabelę, do której zapisywane będą wyniki transformacji (1):


CREATE TABLE RESULTS (

RESULT_NAME CHARACTER VARYING (50) PRIMARY KEY,

IMAGE SI_STILLIMAGE

);


Tabela RESULTS posiada dwa atrybuty: klucz podstawowy RESULT_NAME, który stanowi nazwę wynikowego obrazu, i atrybut IMAGE typu SI_STILLIMAGE, który reprezentuje obraz stanowiący wynik transformacji.

Podstawowy schemat wprowadzania modyfikacji do obrazów wygląda tak, jak przedstawiono w programie (2). Program rozpoczyna się od deklaracji zmiennej pomocniczej TEMP, typu SI_STILLIMAGE. Do zmiennej tej odczytywany jest obraz, który chcemy zmodyfikować. Aby modyfikacja była możliwa, konieczne jest założenie blokady na krotce, w której składowany jest obraz. W związku z tym, zapytanie odczytujące obraz ma dodaną klauzulę FOR UPDATE, która zakłada blokadę do aktualizacji. Następnie, w obiekcie, który został odczytany do zmiennej TEMP aktywowana jest metoda SI_CHANGE_FORMAT, która zmienia format rysunku. Format, na który ma nastąpić zmiana, podawany jest w postaci łańcucha jako jedyny parametr metody. Ostatecznie, przetransformowany obiekt jest wstawiany do tabeli RESULTS (możliwe jest również zastosowanie UPDATE zamiast INSERT np. w sytuacji gdy chcemy zastąpić oryginalny format obrazu nowym). Formaty, na które możliwe jest przeprowadzenie konwersji, zapisane są w perspektywie SI_IMAGE_FORMAT_CONVERSIONS. Perspektywa ta zawiera dwa atrybuty: SI_SOURCE_FORMAT i SI_TARGET_FORMAT. Każda krotka reprezentuje parę formatów: z którego (SI_SOURCE_FORMAT) do którego (SI_TARGET_FORMAT) formatu konwersja jest wspierana przez daną implementację SQL/MM. Format źródłowy można odczytać z obiektu, który chcemy przekonwertować, za pomocą metody SI_FORMAT.

Transformacja obrazu za pomocą metody SI_THUMBNAIL, przebiega w bardzo podobny sposób. Różnica sprowadza się do aktywacji innej metody (SI_THUMBNAIL zamiast SI_CHANGEFORMAT) oraz podania innych parametrów (kolejno: wysokości i szerokości obrazka, zamiast nowego formatu). Dodatkową różnicą jest fakt, iż SI_THUMBNAIL jest funkcją, która zwraca wynik operacji w postaci obiektu typu SI_STILLIMAGE. Przykładowo, w programie (2) zamiast linii:


temp.si_changeformat(‘PNGF’);


Można napisać:


temp:=temp.si_thumbnail(10,10);


Uwaga! Perspektywa SI_IMAGE_FORMAT_CONVERSIONS w SZBD Oracle znajduje się w schemacie ORDSYS.


Przykładowy program przedstawiony na slajdzie załączono do kursu w postaci pliku change_format.sql.


<< Poprzedni slajd | Spis treści | Następny slajd >>