powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Фотографии в формах
17 сообщений из 17, страница 1 из 1
Фотографии в формах
    #39512873
KLAYD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, появилась задача выводить фотки сотрудников в один из разделов, есть некая таблица с полем формата BLOB где собственно хранятся сами фото. Вопрос в том как вывести их в поле на формсах,

- с каким типом должно быть поле? Image?
- и самое главное как вытащить фото из базы и указать, что оно должно выводится в это поле, с форматом BLOB ранее сталкиваться не приходилось, максимум это загрузка из файла read_image_file('vip.bmp','bmp','ABONENT.IMAGE_VIP');

С изображением производить каких то действий больше не планируется, только надо отображать по некому идентификатору сотрудника.
...
Рейтинг: 0 / 0
Фотографии в формах
    #39512983
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Фотографии в формах
    #39513046
Фотография mRdUKE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KLAYD,

KLAYD- с каким типом должно быть поле? Image? Из "стандартных" - "Image", да, или Вы ещё видите варианты? :)
KLAYDи самое главное как вытащить фото из базы... Так же, как Вы "вытаскиваете" другие данные в блоке.

p.s. лично я, в 10-ых "формсах", для загрузки/отображения BLOB использую handleimage3.jar ,
т.к. Forms and Images : keep the initial quality :
Код: plaintext
1.
2.
3.
4.
When you load an image within Forms with the Read_Image_File() built-in, you can notice a certain lack of quality, both in the Forms Image item display quality and in the real information stored in the blob column.
The image seems to be compressed before it is stored in the database. This compression rate is between 25 and 50% !
This Java Bean allows to load images from a file, then store them in the database.
 
...
Рейтинг: 0 / 0
Фотографии в формах
    #39513231
KLAYD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тут ещё другая проблема возникла, похоже что в формсах поле с типом image поддерживает только форматы BMP, CALS, GIF, JFIF, PICT, RAS, TIFF, TPIC. Может быть есть какие то функции/процедуры для перекодировки из одного формата в другой? (фотографии в формате jpeg)?

На этом форуме вроде нашёл для этого функцию
-------------------------------------------------------
create or replace function convertImage(in_source_bl blob, in_dest_type_tx varchar2 default 'jpeg') return blob
is
v_source_img ORDSYS.ORDImage;
v_dest_img ORDSYS.ORDImage;
v_dest_bl blob;

begin
v_dest_img := ORDSYS.ORDImage();

v_source_img := ORDSYS.ORDImage(in_source_bl);
v_source_img.processCopy('fileformat=' || in_dest_type_tx, v_dest_img);
v_dest_bl := v_dest_img.getContent();

return v_dest_bl;
end convertImage;
-----------------------------------------------------
но она у меня не компилится, как то её надо допилить, но не знаю пакета ORDSYS.ORDImage(
...
Рейтинг: 0 / 0
Фотографии в формах
    #39513235
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KLAYD,

1) вы не указали какие у вас формсы.у 6 и 12 разные набор библиотек.

2) скачайте себе справку для Oracle forms - Она очень информативная. я вам выше дал ссылку, нужно просто использовать пример из google.

3) учите английский - справка на американском англицком языке:)

4) в Oracle для картинок используется
https://docs.oracle.com/cd/A58617_01/cartridg.804/a55713/img_uses.htm
...
Рейтинг: 0 / 0
Фотографии в формах
    #39513251
Фотография mRdUKE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KLAYDтут ещё другая проблема возникла, похоже что в формсах поле с типом image поддерживает только форматы BMP, CALS, GIF, JFIF, PICT, RAS, TIFF, TPIC. Может быть есть какие то функции/процедуры для перекодировки из одного формата в другой? (фотографии в формате jpeg)? Image File Formats
JFIF

extension: .jpg

mime: image/jpeg

JFIF is the JPEG File Interchange Format, developed by C-Cube Microsystems for storing JPEG encoded images. The JFIF format is actually just a JPEG data stream with an identifying header and a few enforced conventions. As such, it provides minimal support for anything but the actual image data. By definition, all JFIF files are JPEG compressed, making them less appropriate for some applications, as explained in the description of the JPEG compression format in Image Compression Formats.

Oracle Multimedia identifies several distinct image formats as JFIF, including actual JFIF files, non-JFIF pure JPEG data streams, and EXIF files. The last is a JFIF variant produced by digital cameras.
KLAYDно она у меня не компилится, как то её надо допилить, но не знаю пакета ORDSYS.ORDImage( Managing Oracle Multimedia Installations
...
Рейтинг: 0 / 0
Фотографии в формах
    #39513260
KLAYD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rf_mail,

1) формсы 6.0.8.27.0, сама база - 10.2.0.5.0
2-3) с инглишем большие проблемы, отсюда все и беды, большинство хелпов именно на нём
4) а Вы можете допилить функцию, которую я написал выше (если это рабочий вариант и подходит для конвертации фоток из полей с типом BLOB), из за проблем с инглишем не могу понять по ссылке как правильно допилить функцию, а на русском описания пакета ORDSYS.ORDImage не нашёл(
...
Рейтинг: 0 / 0
Фотографии в формах
    #39513261
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KLAYD,

чтобы окончательно раскрыть тему.

YouTube Video
...
Рейтинг: 0 / 0
Фотографии в формах
    #39513264
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KLAYD,
https://www.youtube.com/results?search_query=read+image+file+from+oracle+forms
...
Рейтинг: 0 / 0
Фотографии в формах
    #39514081
KLAYD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде разобрался, теперь следующая проблема, инфа в поле BLOB закодирована в base64, тут на форуме нашёл одну процедурку для раскодировки

create or replace function Decode_64(p_clob blob) return blob
IS
l_clob blob;
l_len number;
l_pos number := 1;
l_buffer varchar2(23800);
l_amount number := 23800;
begin
l_len := dbms_lob.getlength(p_clob);
dbms_lob.createtemporary(l_clob, true);

while l_pos <= l_len loop
dbms_lob.read (p_clob, l_amount, l_pos, l_buffer);
l_buffer := utl_encode.text_decode(l_buffer, encoding => utl_encode.base64);
l_pos := l_pos + l_amount;
dbms_lob.writeappend(l_clob, length(l_buffer), l_buffer);
end loop;

return l_clob;
end Decode_64;

но она почему то не работает, если фотка больших размеров то ругается что буфер маленький, если фотка маленькая то выводит ошибку ORA-06502.... hex to raw conversion error (скриншот http://prntscr.com/gfrczh) помогите с раскодировкой пожалста)
...
Рейтинг: 0 / 0
Фотографии в формах
    #39514096
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KLAYDВроде разобрался, теперь следующая проблема, инфа в поле BLOB закодирована в base64, тут на форуме нашёл одну процедурку для раскодировки

(скриншот http://prntscr.com/gfrczh) помогите с раскодировкой пожалста)

Найдите другую Работающую процедуру,уважаемый.
...
Рейтинг: 0 / 0
Фотографии в формах
    #39514174
KLAYD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пока что то не получается найти, пол форума перерыл, фото в зашифрованном виде (dBase64), поле типа BLOB.
...
Рейтинг: 0 / 0
Фотографии в формах
    #39514202
KLAYD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовал так
--------------------
create or replace function Decode_64(p_clob blob) return blob
IS
l_clob blob;
l_len number;
l_pos integer := 1;
l_buffer raw(2000);
l_amount integer := 2000;

begin

l_len := dbms_lob.getlength(p_clob);
dbms_lob.createtemporary(l_clob, true);

while l_pos <= l_len loop
dbms_lob.read (p_clob, l_amount, l_pos, l_buffer);
l_buffer := utl_encode.base64_decode(l_buffer);
l_pos := l_pos + l_amount;
dbms_lob.writeappend(l_clob, l_amount, l_buffer);
end loop;

return l_clob;
end Decode_64;
--------------------------------------
но почему то ошибку ORA-21560 вызывает, непонятно почему
...
Рейтинг: 0 / 0
Фотографии в формах
    #39514431
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KLAYD,

предлагаю без лишних слов.
1) активно пользоваться поиском форума sql.ru и создать новую тему для blob,clob в ветке Oracle
2) ознакомиться с http://www.w3ii.com/ru/plsql/plsql_procedures.html
3) скачать книгу Oracle PL/SQL. Для профессионалов. 6-е изд или купить.

PS:
эта ветка форума про формочки, по ним вам дан был исчерпывающий ответ.
...
Рейтинг: 0 / 0
Фотографии в формах
    #39515282
Les
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В формсах действительно бывает проблема с отображением графики.
Если есть место, то советую добавить еще одно поле в таблице, для преобразованного изображения.
Использовал для решения ORDSYS.ORDImage, все нормально работает, база на десятом Oracle
Процесс перекодирования ресурсоемкий, не советую делать это на лету
...
Рейтинг: 0 / 0
Фотографии в формах
    #39516012
AndrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KLAYD,

А длина считанного в base64 и раскодированного буфера разве одинакова?
...
Рейтинг: 0 / 0
Фотографии в формах
    #39522763
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LesВ формсах действительно бывает проблема с отображением графики.
AFAIK

В 6-ых client/server формсах разных версий были проблемы с BLOB'ами. Из за этого в системе использовали поля LONG. Они как-то более надежно работали.

Так же сталкивался с ситуацией, когда после переноса система + БД с сервера заказчика на сервер в офисе (expdp/impdp), Image Item + BLOB перестали работать (версия Forms 6i, БД одинаковая). Как вылечили, не знаю, занимался не я. С полями типа LONG с таким не сталкивался.

Ну и при вставке изображений через Image Item черти что с типом изображения и уровнем сжатия (для JPEG) происходит. Т.ч. я изображение готовил отдельно (C + Image Magic + ORA-FFI), а Image Item только для отображения. IMHO & AFAIK
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Фотографии в формах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]