Access 2016 restrict picture size to 600x800

大兔子大兔子 提交于 2021-01-28 15:36:42

问题


I am building a database and came across an issue that I need help in resolving. This database the customer wants to be able to link pictures to specific records. I have it so the pics are not OLE objects but links to a picture folder that will be on their network drive...So essentially the picture will be a hyperlink to the file path....

My question is does anyone know I way I can have the database reformat the picture automatically to 600 x 800 size, to help save space? We all know if I don't force the DB to do it for them it will not happen and potentially eat up valuable space, as this DB is expected to get quite large. So I would like to keep the picture folder as small as possible, giving the database more room.


回答1:


You can use the WIA libary as shown in VBA – Resize Image like this:

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

Usage:

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

Or:

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

Depending on your image types, you may also increase the compression of your image to save space. WIA should support this too (with the Convert Filter and its Quality Property).



来源:https://stackoverflow.com/questions/53215229/access-2016-restrict-picture-size-to-600x800

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!