Показать, повернуть и увеличить картинку в 1С





Не нашел универсального средства для тонкого и web-клиента для просмотра изображений c увеличением и поворотом. Сделал. В хозяйстве нужная вещь.

Доброго времени суток!

 

Блуждая на инфостарте нашел множество хорошего для обработки и показа изображений.

//infostart.ru/public/74981/ — GraphicsNET

//infostart.ru/public/241765/  — Поворот картинки и Ч/Б

//infostart.ru/public/238511/ — Просмотр изображений через тонкий клиент

В первых двух примерах содержаться полные графические редакторы с соответствующими возможностями. И они редактируют первоначальную картинку перед ее показом. С одной стороны это хорошо, но первоначально стояла в получении простого, универсального средства просмотра, увеличения и поворота изображения. И конечно хотелось, чтобы это средство не требовало внешней компоненты и работало в web-клиенте (прощайте COM объекты). А это значить, что ничего кроме браузерных возможностей применять нельзя.

 

Если вы немного знаете интернет программирование, прочитайте объяснение:

Масштабирование и поворот это базовый набор современных браузеров CSS3 — http://www.w3schools.com/css/css3_2dtransforms.asp

Но что у нас есть для этого в 1С и для html поля в частности? Поле HTML в режиме совместимости IE7, а нам требуется IE9(-ms-transform: rotate(90deg)). Кажется все безнадежно и вы уже опустили руки, а зря.

 

Метод первый:  У нас есть мощная библиотека Raphael (статья //infostart.ru/public/191248/) и ее возможности трансформации и можно использовать для картинок и изображений в режиме старого IE7.

Метод второй:  Использовать трансформацию изображений в тонком клиенте старыми методами IE(http://demos.aimweb.name/css-transform-generator), а в web-клиенте CSS3 transform.

 

Делаем и смотрим что получилось. Наслаждаемся.

 

Версия 1С 8.2 для управляемых форм.

Версия 8.3 для новомодного отсутствия модальности .

Версия 8.2 для простых форм прилагается второй формой(уверен, что код будет работать и с 8.1).

 

Сайт sikuda.ru

19 Comments

  1. ZOMI

    Пригодится! В закладочки

    Reply
  2. Yashazz

    Погодь, вот это: http://infostart.ru/public/241765/ — разве не подходит? Слишком общо? Я его как раз заюзать тоже думал…

    Reply
  3. cool.vlad4

    (2) Yashazz, сомневаюсь, что по указанной ссылке будет работать в web клиенте. не знаю как работает в этой публикации, но подозреваю, что используется js или что-то вроде этого.

    Reply
  4. Yashazz

    (3) У меня задача в толстом/тонком, приглядывался к той обработке, но пока не качал. Если ты уж видел, тогда sikud’овскую посоветуешь или ту?

    Reply
  5. anig99

    используется js. Ничем по сути не отличается от использования консольной утилиты (которую можно впихнуть в макет) или использования WMI, который есть в виндах выше XP…

    Так что насчет пушки по воробьям — это ты зря.

    Единственное преимущество — кроссплатформенность, но его ещё проверить нужно.

    Reply
  6. anig99

    Кстати, как показывает мой опыт, почему-то не всякий js заработает правильно в 1с…

    всяких js библиотек дофига в сети. Найти среди них чистому 1снику, такой, чтобы работал и тоже не пушкой по воробьям — проблема.

    А так поставлю плюс, как образцу прикручивания js к 1с.

    Reply
  7. anig99

    Вот, чтобы исправить ОтобразитьКартинкуНаКлиенте, чтобы выглядело, как мне надо, нужно мне искать дальше учить html.

    Reply
  8. cool.vlad4

    (4) Yashazz, честно, врать не хочу, не скачивал ни то, ни другое. посоветовать поэтому не могу. на тонком/веб клиенте наверное эта публикация, хотя как заметил anig99 в (6), бывают проблемы с исполнением js в 1С (на мой взгляд это связано в web browser control, который не является полноценным браузером и который по крайней мере использовался в 8.1, сейчас что там используется в 1С-ке, не знаю)

    Reply
  9. sikuda

    (0) Обновил публикацию. Сделал вторую версию без внешних библиотек, 10Кб можно засовывать в любой проект.

    Reply
  10. sikuda

    (8) cool.vlad4, Да все осталось. Я этим практически профессионально стал заниматься:

    от 1С Web браузер

    до 1C и IE11 заметка

    (7) Да, пора. Технологии меняются — надо не отставать.

    Reply
  11. sikuda

    НачатьПомещениеФайла в 8.2 ругается, поэтому все 8.3 закомментировал.

    Проверил с web-клиентом 8.2

    Reply
  12. нормальный такой

    Дружище!

    Неистово плюсую! это то что я пытался слепить сам, вс работает в браузере, но ПолуHTMLДокумента ни в какую не хотело воспринимать мои скрипты… я отчаился, но тут нашел твою обработку!

    Честно я стащил твой скрипт и он успешно работает, респект.

    Я никак не хотел использовать COM компоненты или временные файлы и переворачивать их с помощью VB, твой вариант идеален.

    Просто я получаю картинки из внешней БД и работаю с ними через ВременноеХранилище и сохранять файлы на пользовательские ПК никак не хочу.

    🙂

    Reply
  13. нормальный такой

    вообще переделал на объектную модель и запилил кнопок на форме, работает, спс!

    http://take.ms/3syY0

    html стал совсем коротким

    «< html >
    |< head >
    |< /head >
    |< body >< img id=’img’ src=»+fileSourse+» >
    |< /body >< /html >»
    Reply
  14. VitalMakarr

    Зачем ограничиваться узкими возможностями. Попробуйте http://infostart.ru/public/322956/

    Reply
  15. www2007

    Отличная, полезная обработка! Пригодится, спасибо!

    Reply
  16. Pawlick

    А вот сохранить обработанное (перевернутое, уменьшенное/увеличенное) изображение как то можно?

    Reply
  17. xelas12345

    (13)

    А как на кнопки запилил?

    Reply
  18. нормальный такой

    (17) убей не вспомню. но вроде там какой-то симбиоз html и артибутов transform. просто по кнопкам на форме изменялись атрибуты и перерисовывалось изображение.

    вроде так, но это не точно.

    Reply
  19. tanat74

    А как-то можно запилить автомаштабирование? Картинка (элемент обычной формы) сама масштабирует рисунок что бы он помещался на экран. А тут получается не красиво — рисунок если большой, то приходится уменьшать вручную. (рисунки разные, поэтому общим скопом не подобрать коэффициент)

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *