Access 2016 ограничивает размер изображения до 600x800 - PullRequest
0 голосов
/ 08 ноября 2018

Я строю базу данных и столкнулся с проблемой, которая мне нужна для решения. В этой базе данных клиент хочет иметь возможность связывать изображения с конкретными записями. У меня так, чтобы картинки были не объектами OLE, а ссылками на папку с изображениями, которая будет на их сетевом диске ... Так что, по сути, картинка будет гиперссылкой на путь к файлу ....

Мой вопрос: знает ли кто-нибудь, как я могу заставить базу данных автоматически переформатировать изображение до размера 600 x 800, чтобы помочь сэкономить место? Все мы знаем, что если я не заставлю БД сделать это для них, этого не произойдет, и, возможно, она пожирает ценное пространство, поскольку ожидается, что эта БД станет достаточно большой. Поэтому я хотел бы, чтобы папка с изображениями была как можно меньше, чтобы в базе данных было больше места.

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете использовать библиотеку WIA, как показано в VBA - изменить размер изображения следующим образом:

Function ResizeImageTo600x800(ByVal PathToImage As String, ByVal PathToResizedImage As String) As Boolean

Dim WiaImgFile As Object 'WIA.ImageFile

Set WiaImgFile = CreateObject("WIA.ImageFile")

With CreateObject("WIA.ImageProcess") 'WIA.ImageProcess
   .Filters.Add .FilterInfos("Scale").FilterID 'Add Scale Filter to ImageProcess

   .Filters(1).Properties("MaximumWidth") = 600 ' Set Width to 600px
   .Filters(1).Properties("MaximumHeight") = 800 'Set Height to 800px
   '.Filters(1).Properties("PreserveAspectRatio") = False ' uncomment if AspectRatio should not be preseved

   WiaImgFile.LoadFile PathToImage ' Load Image
   .Apply(WiaImgFile).SaveFile PathToResizedImage ' Apply Filter and save resized Image

   ResizeImageTo600x800 = True

   Set WiaImgFile = Nothing
End With

End Function

Использование:

If ResizeImageTo600x800("\\path\to\image", "\\path\to\resized\image") then
  Msgbox "ResizeImageTo600x800 successful!"
End If

Или:

ResizeImageTo600x800 "\\path\to\image", "\\path\to\resized\image"

В зависимости от типа изображения вы также можете увеличить сжатие изображения для экономии места. WIA также должна это поддерживать (с помощью фильтра преобразования и его свойства качества).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...