Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Может встроить в 1cpp класс для работы с Picture? (число прочтений - 8723 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #15 - 13. Декабря 2007 :: 18:19
Печать  
Верная дока ниже
« Последняя редакция: 15. Декабря 2007 :: 13:31 - artbear »  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #16 - 14. Декабря 2007 :: 17:59
Печать  
artbear писал(а) 13. Декабря 2007 :: 18:19:
Сервис = СоздатьОбъект("spService");

Хотелось бы добавить, что все методы сделаны в классе Система Улыбка

  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #17 - 14. Декабря 2007 :: 18:16
Печать  
Кирилл, я правильно понимаю, что для того чтобы получить OLE.Picture, мы сперва загружаем ico в Картинку. И соответственно у нас будет ограничение в 256 цветов?

А как же красявые иконки на тулбарах? Печаль
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #18 - 15. Декабря 2007 :: 09:12
Печать  
Arta писал(а) 14. Декабря 2007 :: 17:59:
artbear писал(а) 13. Декабря 2007 :: 18:19:
Сервис = СоздатьОбъект("spService");

Хотелось бы добавить, что все методы сделаны в классе Система Улыбка

Здесь исправил Улыбка
А в офиц.доку Кирилл обещал внести.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #19 - 15. Декабря 2007 :: 10:59
Печать  
Arta писал(а) 14. Декабря 2007 :: 18:16:
Кирилл, я правильно понимаю, что для того чтобы получить OLE.Picture, мы сперва загружаем ico в Картинку. И соответственно у нас будет ограничение в 256 цветов?

А как же красявые иконки на тулбарах? Печаль


Ты делай Картинка = создатьОбъект("Картинка"), Картинка.ЗагрузитьКартинку(Путь)... в таком случае нет преобразования до 256

да и вообще вроде преобразования при загрузке в библиотеку картинок не происходит. преобразуются только картинки при выводе строк в ТЗ, СЗ и многострочных частях
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #20 - 15. Декабря 2007 :: 12:32
Печать  
Але, никакой spservice нет - это внутрекорпоративный класс. В составе 1с++ это "Система".
Ничего загружать не надо, а наоборот. Эти методы позволяют любую (bmp, ico и скорее всего другое из 1с) картинку нарезать и сохранить/отдать в ActiveX.

Цитата:
СохранитьКартинку / SavePic

Синтаксис: СохранитьКартинку(Каталог, ИмяФайла, Картинка, Индекс, Ширина)
Параметры:
Каталог - тип: Строка. Каталог, в котором будет создан файл картинки (метод проверяет наличие каталога и выбрасывает исключение, если путь не верен). Если каталог не указан, то будет использоваться каталог временных файлов; в этом случае метод вернет через этот параметр путь к каталогу.
ИмяФайла - тип: Строка. Имя файла (без расширения) с которым будет создан файл картинки. Если не указано, то будет сгенерировано уникальное имя в формате picXXX.ext; в этом случае метод вернет через этот параметр имя созданного файла.
Картинка - тип: Картинка или Строка. Параметром может выступать как объект типа Картинка, так и строка с идентификатором из библиотеки картинок.
Индекс - тип: Число. Индекс картинки (начиная с нуля), в случае, если картинка составная. Если параметр не указан, то сохраняется картинка целиком (по умолчанию -1).
Ширина - тип: Число. Ширина картинки в пикселях (по умолчанию 16). Необходимо для определения индекса составной картинки.

Описание: позволяет сохранить картинку в файловую систему. Если значения параметров Каталог и/или ИмяФайла не были заданы, то метод сохранит картинку в каталог временных файлов с уникальным именем. Для создаваемых файлов метод сам подставляет расширение. Метод может выбросить исключение, в случае возникновения ошибочных ситуаций. Сохранению подлежат картинки следующих типов: ICO, BMP.

Пример (сохранение картинки из библиотеки картинок):
Перем Сервис;
Перем Каталог, Файл; // в эти переменные вернутся путь к каталогу и имя файла

Сервис = СоздатьОбъект("Система");

// сохранение картинки с идентификатором "СтрелкаВниз" из библиотеки картинок
//
Сервис.СохранитьКартинку(Каталог, Файл, "СтрелкаВниз");

// сохранение картинки с идентификатором "СтрелкаВниз" из библиотеки картинок.
// картинка представляется набором из 3 картинок, каждая шириной по 16 пикселей.
//
Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, "СтрелкаВниз", 0, 16); // первая картинка

Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, "СтрелкаВниз", 1, 16); // вторая картинка

Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, "СтрелкаВниз", 2, 16); // третья картинка

Пример (сохранение объекта Картинка):
Перем Сервис;
Перем Каталог, Файл; // в эти переменные вернутся путь к каталогу и имя файла
Перем Карт; // объект Картинка для примера

Сервис = СоздатьОбъект("Система");

// создаем из файла объект Картинка для дальнейших манипуляций
//
Карт = СоздатьОбъект("Картинка");
Карт.Загрузить("C:\pics_for_samle\pic1.bmp"); // картинка из 2-ух по 16 пикселей

Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, Карт); // всю целиком

Каталог  = "";
Файл     = "";
Сервис.СохранитьКартинку(Каталог, Файл, Карт, 1, 16); // только вторую
ПолучитьOLEКартинку / GetOlePicture

Синтаксис: ПолучитьOLEКартинку(Картинка, Индекс, Ширина)
Параметры:
Картинка - тип: Картинка или Строка. Параметром может выступать как объект типа Картинка, так и строка с идентификатором из библиотеки картинок.
Индекс - тип: Число. Индекс картинки (начиная с нуля), в случае, если картинка составная. Если параметр не указан, то сохраняется картинка целиком (по умолчанию -1).
Ширина - тип: Число. Ширина картинки в пикселях (по умолчанию 16). Необходимо для определения индекса составной картинки.

Возвращает: тип: IPicture. Возвращает картинку типа OLE.Picture.

Описание: позволяет получить картинку типа OLE.Picture. Получению подлежат картинки следующих типов: ICO, BMP.


Вот пример работы с ActiveX:
  

GetIPicture.ert ( 43 KB | Загрузки )
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #21 - 15. Декабря 2007 :: 13:31
Печать  
Кирилл, а ты эту доку в официальную доку залил или еще нет?
ИМХО лучше туда закинуть Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #22 - 15. Декабря 2007 :: 13:59
Печать  
Кирилл, я не говорю про штатные картинки, я имею ввиду про иконки.

Чуть изменил твою обработку для наглядности этого момента.
  

spock.rar ( 11 KB | Загрузки )
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #23 - 15. Декабря 2007 :: 14:07
Печать  
ICO , BMP - и есть картинки Улыбка
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #24 - 15. Декабря 2007 :: 14:21
Печать  
Кирилл, я так и не понял. Мы теряем кол-во цветов используя предложенный тобой класс или нет?

На скриншоте слева от твоих добавлены две одинаковые иконки. Первая через твой класс, вторая через vbs.
  

ClipBoard-1_006.jpg ( 13 KB | Загрузки )
ClipBoard-1_006.jpg
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #25 - 15. Декабря 2007 :: 14:25
Печать  
Попробуй на эту ert заменить, а то не совсем ясен пример Улыбка
  

GetIPicture_001.ert ( 43 KB | Загрузки )
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #26 - 15. Декабря 2007 :: 14:30
Печать  
Вот что получается
  

pic3.bmp ( 160 KB | Загрузки )
pic3.bmp
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #27 - 16. Декабря 2007 :: 09:31
Печать  
Ууу, какие ребята в 1с сидят хитрые.  Злой
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Может встроить в 1cpp класс для работы с Pictu
Ответ #28 - 18. Декабря 2007 :: 09:43
Печать  
Решить проблему бледных красок в продвинутых ICO можно пока только через предварительную конвертацию в BMP.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать