使用“DateTaken”属性保存位图

时间:2017-03-10 15:03:51

标签: c#

目标

我正在为特定作业编写自动图像大小调整应用程序。使用智能手机拍摄图像,上传到文件夹,然后我的应用程序运行并调整所有文件的大小,并将它们保存到输出文件夹中。

问题

图像大小调整工作正常,问题是保存调整大小的文件时“DateTaken”属性会丢失。

守则

我设法获取原始文件的DateTaken属性的值并将其放入DateTime对象中。我试图找到将这些数据保存回原始文件的方法,但我在网上找不到任何示例,只是将7小时添加到DateTaken属性。

    private static void Resize(string imageFile, string outputFile, int maxWidth, int maxHeight)
    {
        using (var image = Image.FromFile(imageFile))
        {

            var ratioX = (double)maxWidth / image.Width;
            var ratioY = (double)maxHeight / image.Height;
            var ratio = Math.Min(ratioX, ratioY);
            var newWidth = (int)(image.Width * ratio);
            var newHeight = (int)(image.Height * ratio);
            var newImage = new Bitmap(newWidth, newHeight);

            using (var graphics = Graphics.FromImage(newImage))
                graphics.DrawImage(image, 0, 0, newWidth, newHeight);


            DateTime DateTaken = GetDateTakenFromImage(imageFile);
            newImage.Save(outputFile);

        }
    }

0 个答案:

没有答案