Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2009, 20:20   #1
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию Точность при переходе от миллиметров к пунктам

Я написал функцию для подгонки размера изображения (картинки)
Код:
Private Sub ResizeShape(ByRef oShape As Shape, _
                        Optional ByVal iDesiredSize = 160, _
                        Optional ByVal bLockAspectRatio = True)
  'фиксируем соотношение сторон
  oShape.LockAspectRatio = bLockAspectRatio
  With oShape
    If .Width > .Height Then
      .Width = iDesiredSize
      .PictureFormat.CropTop = -CInt(MillimetersToPoints((iDesiredSize - .Height) / 2))
      .PictureFormat.CropBottom = -CInt(MillimetersToPoints(iDesiredSize - .Height))
    ElseIf .Height > .Width Then
      .Height = iDesiredSize
      .PictureFormat.CropBottom = -CInt(MillimetersToPoints((iDesiredSize - .Width) / 2))
      .PictureFormat.CropLeft = -CInt(MillimetersToPoints(iDesiredSize - .Width))
    ElseIf .Height = .Width Then .Height = iDesiredSize: End If
  End With
End Sub
Работает просто. Любое изображение подгоняется под квадратное. Сначала в нужный размер ставится большая сторона изображения, а потом делается изменение размера полотна. Так вот, при этом не точно изменяются размеры. Например, при рззмере 160 пт для ширины, высота получается 161,85 пт. Как этого избежать? Разница небольшая, порядка 0,6 мм, но неприятно.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 03.02.2009 в 08:01.
viter.alex вне форума Ответить с цитированием
Старый 03.02.2009, 12:14   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию танцы с бубном.

Описаный в первом посте метод так и не заработал нужным образом. Я решил пойти по другому пути. Я решил добавить полотно, сделать его нужного размера, а затем выровнять картинку относительно полотна по центру. Визуально это ничего бы не изменило. Но не тут-то было. Координаты считаются очень странным образом. Они считаются не относительно полотна, в котором находится рисунок (что было бы логично), а относительно страницы. Пытался макрорекордером записать выравнивание, не дает. Что делать?
Или кто-нибудь знает метод вставки рисунка в документ с положением в тексте? Я такого не нашел.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 03.02.2009 в 12:21.
viter.alex вне форума Ответить с цитированием
Старый 03.02.2009, 16:36   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию Дотанцевался!

Решение нашел, но не очень красивое.
После измения размера по методу из первого поста я подгоняю размер под нужный путем изменения нужного размера до желаемого без соблюдения соотношения сторон. Поскольку разница в размерах невелика, то визуально почти ничего не видно. Кстати, при работе с картинками полезно установить единицы измерения в пункты, многих неудобств удастся избежать.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отмена прокрутки при переходе от одного компонента к другому sim_84 Компоненты Delphi 1 03.02.2009 20:34
Какое событие происходит при переходе из оконного режима формы в полноэкраный (развернутый)? Luciferium Общие вопросы Delphi 9 09.03.2008 17:36
Смена кодировки названия открываемого файла в адресной строке при переходе на него по ссылки Adamant HTML и CSS 1 08.02.2008 18:51
Refresh при переходе на страницу nikleb JavaScript, Ajax 8 20.12.2007 18:24
Обнуление значений $_SESSION[*] при переходе на некоторые страници kkkggg PHP 3 11.09.2007 23:09