Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Преобразование картинки в строку (число прочтений - 17224 )
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Преобразование картинки в строку
Ответ #15 - 09. Июня 2007 :: 22:27
Печать  
этта... что такое base64 и uuencode только я помню? прикольно Улыбка
  
Наверх
www  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Преобразование картинки в строку
Ответ #16 - 10. Июня 2007 :: 04:52
Печать  
fez писал(а) 09. Июня 2007 :: 22:27:
этта... что такое base64 и uuencode только я помню? прикольно Улыбка

Отнюдь Улыбка
Однако и Z1 прав, Цитата:
чтобы бинарный файл как можно меньше занимал место внутри базы 1с
, что base64 и uuencode как-то не сильно...
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Преобразование картинки в строку
Ответ #17 - 10. Июня 2007 :: 09:46
Печать  
Есть еще классная разработка г-на Барышникова http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=3794

Цитата:
Непосредственному хранению двоичных данных в длинных строках 1С Предприятие 7.7 мешают
следующие обстоятельства:
1. 1С Предприятие "не признаёт" символ с кодом 0 в строках.
2. Большинство символов с кодами 1-32 в длинной строке при осуществлении операции
"Тестирование и исправление ИБ" будут восприняты как ошибка.
3. При сохранении длинной строки 1С Предприятие обрезает конечные пустые символы
(пробел, перевод строки и т.п.), что для двоичных данных недопустимо.
4. Размер длинной строки ограничен значением ~780Кб.

п.4 правда у меня вызывает сомнения; имхо не должно быть такого ограничения для SQL баз.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Преобразование картинки в строку
Ответ #18 - 13. Июня 2007 :: 04:21
Печать  
kms писал(а) 10. Июня 2007 :: 09:46:
Есть еще классная разработка г-на Барышникова http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=3794

Цитата:
Непосредственному хранению двоичных данных в длинных строках 1С Предприятие 7.7 мешают
следующие обстоятельства:
1. 1С Предприятие "не признаёт" символ с кодом 0 в строках.
2. Большинство символов с кодами 1-32 в длинной строке при осуществлении операции
"Тестирование и исправление ИБ" будут восприняты как ошибка.
3. При сохранении длинной строки 1С Предприятие обрезает конечные пустые символы
(пробел, перевод строки и т.п.), что для двоичных данных недопустимо.
4. Размер длинной строки ограничен значением ~780Кб.

п.4 правда у меня вызывает сомнения; имхо не должно быть такого ограничения для SQL баз.


Про пункт 2 ничего сказать не могу. В своих базах не применяю.
По пункту 3 просто всегда добавляю к строке один символ ( 'z') при  чтении из файла
при записи игнорирую последний символ.
4. для dbf файлов макс размер = 80*100 000 байт ~ 8 Мб.
Есть вроде еще принипиальное ограничение на длину OLE строки или OLE строки для
1с но этой величины не достигал( у нас стоит ограничение на размер файла 400Kb).
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Преобразование картинки в строку
Ответ #19 - 12. Августа 2007 :: 21:26
Печать  
Z1 писал(а) 09. Июня 2007 :: 07:12:
JohnyDeath писал(а) 09. Июня 2007 :: 06:27:
а можешь ссылку показать?


http://1c.proclub.ru/modules/mydownloads/personal.php?cid=115&lid=3163
Последняя версия компоненты прикреплена
Описание и как ставить в архиве с проклуба

А сорцы есть?
ПС. Что-то мне подсказывает, что скоро потребуется мне такая вещь...
« Последняя редакция: 13. Августа 2007 :: 05:26 - trdm »  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Преобразование картинки в строку
Ответ #20 - 13. Августа 2007 :: 05:12
Печать  
trdm писал(а) 12. Августа 2007 :: 21:26:
А сорцы есть?
ПС. Что-то мне подсказывает, что скоро потребуется мне такая вещь...

А ты посмотри на соседнюю ветку. Там vip выкладывал конфу с активиксом для отображения картинок с помощью gflax.dll. Ссылка на библиотеку GFLAx также имеется.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Преобразование картинки в строку
Ответ #21 - 13. Августа 2007 :: 05:28
Печать  
не, мне сама технология преобразования нужна, а не готовый объект.
  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Преобразование картинки в строку
Ответ #22 - 13. Августа 2007 :: 05:34
Печать  
Ну у vip'a спроси, думаю, что не откажет.
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Преобразование картинки в строку
Ответ #23 - 13. Августа 2007 :: 05:43
Печать  
JohnyDeath писал(а) 13. Августа 2007 :: 05:34:
Ну у vip'a спроси, думаю, что не откажет.

Там все просто.
1. Загоняешь файл картинки в байтовый массив.
2. Перебираешь байты и конвертируешь их в строку (это самый тупой метод, в С++ по моему есть отдельный класс для этого, но я на VB пишу).
Если соберусь с духом, попробую использовать ассемблерную вставку для этой операции.

А активикс я сделал именно для того, чтобы использовать метод GFLAx ReceiveBinary(), который позволяет отображать картинку прямо из байтового массива, без промежуточной записи файла на диск.

Байтовый массив для передачи в ReceiveBinary() формирую обратной конвертацией из строки, которая хранится в справочнике картинок.
Тоже нужно оптимизировать эту операцию.
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Преобразование картинки в строку
Ответ #24 - 13. Августа 2007 :: 06:05
Печать  
vip писал(а) 13. Августа 2007 :: 05:43:
Там все просто.
1. Загоняешь файл картинки в байтовый массив.
2. Перебираешь байты и конвертируешь их в строку (это самый тупой метод, в С++ по моему есть отдельный класс для этого, но я на VB пишу).

0 >> 0x00, 1>>0x01 и т.п?
В принцыпе понятно.
  
Наверх
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Преобразование картинки в строку
Ответ #25 - 13. Августа 2007 :: 06:16
Печать  
Цитата:
0 >> 0x00, 1>>0x01 и т.п?

Именно так Улыбка
Но это слегка неоптимально. В binfiles.dll такое преобразование выполняется в 10 раз быстрее. Так что тут поработать надо.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Преобразование картинки в строку
Ответ #26 - 13. Августа 2007 :: 06:27
Печать  
trdm писал(а) 12. Августа 2007 :: 21:26:
Z1 писал(а) 09. Июня 2007 :: 07:12:
JohnyDeath писал(а) 09. Июня 2007 :: 06:27:
а можешь ссылку показать?


http://1c.proclub.ru/modules/mydownloads/personal.php?cid=115&lid=3163
Последняя версия компоненты прикреплена
Описание и как ставить в архиве с проклуба

А сорцы есть?
ПС. Что-то мне подсказывает, что скоро потребуется мне такая вещь...


пиши в личные сообщения с указанием куда слать ( только найти еще надо где это лежит )
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать