|
Получение картинки из Active Directory | ☑ | ||
---|---|---|---|---|
0
Наська72
24.01.13
✎
03:50
|
Добрый день! Взываю к вашей помощи, форумчане, ибо совсем задолбалась с 1с.
Итак, задача в числе прочего дернуть из карточки пользователя из Active directory фото и поместить его кое-куда. На входе получаю ComSafeArray через Stream записываю его. Но это не картинка, это ужас - пара квадратиков в уголочке. НоваяСтрока.Фото = obj1.thumbnailPhoto; ... Stream = Новый COMОбъект("ADODB.Stream"); Stream.Type = 1;//StreamTypeEnum.adTypeBinary; Stream.Mode = 3;//ConnectModeEnum.adModeReadWrite; Stream.Open(); Stream.Write(Фото); Путь = ПолучитьИмяВременногоФайла(".jpg"); Stream.SaveToFile(Путь);//"C:\image.jpg");//SaveOptionsEnum.adSaveCreateNotExist); Stream.Close(); ... Как получить не сжатое изображение? Может быть есть другие способы? HELP!!!! |
|||
1
Godofsin
24.01.13
✎
05:05
|
jpg заменить на bmp&
|
|||
2
Наська72
24.01.13
✎
05:48
|
Пробовала.Эффект такой же.
|
|||
3
Наська72
24.01.13
✎
11:48
|
Неужели никто таким извратом не занимался?
Может быть есть альтернативные варианты? Библиотечки какие-нибудь? |
|||
4
Наська72
25.01.13
✎
12:44
|
По сути в строке Stream.Write(Фото) под Фото подразумевается ComSafeArray, то есть массив.
Как из ComSafeArray сделать хотя бы двоичные данные, что бы потом можно было попробовать НовыйКартинка(ДвоичныеДанныеПуть)???? Помогите, пожалуйста! |
|||
5
acsent
25.01.13
✎
12:48
|
Ты получаешь thumbnailPhoto а не просто фото
|
|||
6
Наська72
25.01.13
✎
13:04
|
В чем отличие и как с ним быть?
|
|||
7
djekting
25.01.13
✎
14:22
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
Stream=Новый COMОбъект("ADODB.Stream"); Stream.Type=1; Stream.Open(); Stream.LoadFromFile("C:\БылЗвонок.bmp"); Connection=Новый COMОбъект("ADODB.Connection"); Connection.Open("Provider=SQLOLEDB.1; Data Source=NEXTGEN; Initial Catalog=MyBase; User ID=sa;"); RecordSet=Новый COMОбъект("ADODB.Recordset"); RecordSet.CursorLocation=3; RecordSet.LockType=2; Запрос="Select data from dbo.MyTable"; RecordSet.Open(Запрос, Connection); Если RecordSet.RecordCount=0 Тогда RecordSet.AddNew(); // RecordSet.Fields(0).Value=1; Иначе RecordSet.MoveFirst(); КонецЕсли; RecordSet.Fields("Data").Value=Stream.Read(-1); RecordSet.Update(); Stream.Close(); КонецПроцедуры Процедура ОсновныеДействияФормыd(Кнопка) Stream=Новый COMОбъект("ADODB.Stream"); Stream.Type=1; Stream.Open(); Connection=Новый COMОбъект("ADODB.Connection"); Connection.Open("Provider=SQLOLEDB.1; Data Source=NEXTGEN; Initial Catalog=MyBase; User ID=sa;"); RecordSet=Новый COMОбъект("ADODB.Recordset"); RecordSet.CursorLocation=3; RecordSet.LockType=2; Запрос="Select data from dbo.MyTable"; RecordSet.Open(Запрос, Connection); RecordSet.MoveFirst(); Stream.Write(RecordSet.Fields("Data").Value); Stream.SaveToFile("c:\БылЗвонокВост.bmp"); Stream.Close(); КонецПроцедуры |
|||
8
Наська72
28.01.13
✎
06:44
|
(7) не вижу ничего принципиально нового. У меня так же есть запрос, поле из него тоже через Стрим пишу в файл. Вопрос в другом - почему картинка такая маленькая(сжатая?) и как записать нормально картинку?
|
|||
9
Наська72
28.01.13
✎
06:57
|
Попробовала следующую схему: ComSafeArray->BASE64->ДвоичныеДанные->Картинка
Всё равно получаю сжатую картинку. |
|||
10
Наська72
28.01.13
✎
07:35
|
Всем спасибо. Получилось!
|
|||
11
vde69
28.01.13
✎
08:15
|
(10) получилось - покажи как :)
|
|||
12
bse
28.01.13
✎
12:48
|
зажал походу
|
|||
13
oleg_km
28.01.13
✎
13:32
|
(12) похоже отсыпаться пошел
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |