Показать, повернуть и увеличить картинку в 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 не будет опубликован. Обязательные поля помечены *