Foxtable(狐表)用户栏目专家坐堂 → 如何获取照片的拍摄时间


  共有2511人关注过本帖树形打印复制链接

主题:如何获取照片的拍摄时间

帅哥哟,离线,有人找我吗?
rjh4078
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
如何获取照片的拍摄时间  发帖心情 Post By:2018/2/27 10:44:00 [只看该作者]

如题 发现fileinfo获取的创建时间和照片的实际拍摄时间差距很大,如何获取照片的拍摄时间?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/27 11:12:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2018/2/27 12:35:00 [只看该作者]

这个老是提示内存不足

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2018/2/27 12:49:00 [只看该作者]

每获取10-20张照片时就提示内存不足  我这里有10万张照片

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2018/2/27 12:54:00 [只看该作者]

For Each r As Row In Tables("图片库")
    If r("扩展名")=".JPG"  AndAlso r.Isnull("拍摄时间") Then
        Dim img As Image = Image.FromFile(r("路径"))
        Dim pt As PropertyItem() = img.PropertyItems
        For i As Integer = 0 To pt.Length - 1
            Dim p As PropertyItem = pt(i)
            Select Case pt(i).Id
                'Case &H132
                    'Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    'Output.Show("修改时间:  " & s)
                    'Output.Show("")
                Case &H9003
                    Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    ‘Output.Show(r.Index & "拍摄时间:  " & s)
                    ’Output.Show("")
                    r("拍摄时间")=s
                'Case &H110
                    'Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    'Output.Show("相机型号:  " & s)
                    'Output.Show("")
                'Case &H10F
                    'Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    'Output.Show("制造商:  " & s)
                    'Output.Show("")
                    '
                'Case  &H131
                    'Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    'Output.Show("修改软件:  " & s)
                    'Output.Show("")
                    
            End Select
        Next
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2018/2/27 12:56:00 [只看该作者]

8G内存 报错时内存还有60%

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/27 14:19:00 [只看该作者]

试试

 

For Each r As Row In Tables("图片库")
    If r("扩展名")=".JPG"  AndAlso r.Isnull("拍摄时间") Then
        Dim img As Image = Image.FromFile(r("路径"))
        Dim pt As PropertyItem() = img.PropertyItems
        For i As Integer = 0 To pt.Length - 1
            Dim p As PropertyItem = pt(i)
            Select Case pt(i).Id
                'Case &H132
                    'Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    'Output.Show("修改时间:  " & s)
                    'Output.Show("")
                Case &H9003
                    Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    ‘Output.Show(r.Index & "拍摄时间:  " & s)
                    ’Output.Show("")
                    r("拍摄时间")=s
                'Case &H110
                    'Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    'Output.Show("相机型号:  " & s)
                    'Output.Show("")
                'Case &H10F
                    'Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    'Output.Show("制造商:  " & s)
                    'Output.Show("")
                    '
                'Case  &H131
                    'Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
                    'Output.Show("修改软件:  " & s)
                    'Output.Show("")
                    
            End Select
        Next
        img.dispose
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2018/2/27 20:03:00 [只看该作者]

现在可以了 有个新问题 如何用多线程来运行这个代码? 我想把10万张分成100个线程来处理,现在这个会导致程序卡死无响应。

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/2/27 20:39:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/28 10:08:00 [只看该作者]

以下是引用rjh4078在2018/2/27 20:03:00的发言:
现在可以了 有个新问题 如何用多线程来运行这个代码? 我想把10万张分成100个线程来处理,现在这个会导致程序卡死无响应。

 

建议还是这样写代码,处理的时候,加上 Application.DoEvents 应该就可以了,如

 

For i As Integer = 1 To 1000
    CurrentTable.addnew
    Application.DoEvents
Next


 回到顶部
总数 13 1 2 下一页