как изменить размер изображения, извлеченного из оракула БД - PullRequest
0 голосов
/ 16 мая 2011

Привет. В нашей базе данных oracle есть столбец BLOB-объектов, используемый для сохранения изображений.

Теперь мне нужно отобразить их на веб-странице, поэтому я создаю Image.aspx, который будет читатьдвоичные данные большого двоичного объекта и запишите их в ответ, чтобы я мог вставить это изображение, используя:

<img src="Image.aspx?id=xx />

Однако размер (16k, 12M?) и разрешение (800x600,4000x1299?) не уверены, поэтому иногдаизображение может быть настолько большим, что его загрузка займет много времени, также разрешение некоторых изображений превышает 2000x2000, поэтому я хочу увеличить их до небольшого масштаба.

То есть я прочитал двоичный файл изображенияи связать их с объектом "Изображение", прочитать его размер и изменить его?

Как это сделать?

Ответы [ 3 ]

1 голос
/ 08 февраля 2016

Вот функция для изменения размера поля изображения BLOB-объекта:

CREATE OR REPLACE FUNCTION resize_img (i_ID INTEGER)
   RETURN BLOB
IS
   vImageData     BLOB;
   vSizedImage BLOB;

BEGIN

SELECT img_simbolo_op
         INTO vImageData
         FROM tbl_yourtable
        WHERE my_ID = i_ID; 

  DBMS_Lob.createTemporary(vSizedImage, FALSE, DBMS_LOB.CALL);

   ORDSYS.OrdImage.processCopy(vImageData, 'maxScale=75 75', vSizedImage);


   return vSizedImage;

END resize_img;
0 голосов
/ 17 мая 2011

Вы можете использовать встроенные модули Oracle для изменения масштаба / размера изображения. Но вам придется использовать BLOB в конструкторе для ORDImage.Затем получит свойства Ordimage , которые могут быть немного напряженными.

0 голосов
/ 16 мая 2011

Обычное решение состоит в том, чтобы иметь три столбца в таблице изображений, которые содержат ширину, высоту и миниатюру в разумном разрешении (скажем, масштабированы до соотношения в прямоугольнике 256x256 или 512x512).

Таким образомВы можете выяснить, насколько большим будет изображение без дорогой загрузки, и миниатюра должна работать в большинстве ситуаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...