How do I edit JPG File Title, Subject, Comments, a

2019-05-06 21:46发布

How do I edit JPG File Title, Subject, Comments, and Tags/Keyowrds?*

I have already tried asking this question here:

The Exif information provided was helpful, but in the end did not actually solve the real riddle I was working on. So I'll take another angle at describing the desired result:

I want my VB.NET app to allow me to edit the following details of a Jfile (see image):

Title, Subject, Comments, and Tags/Keyowrds

Can anyone explain how to edit those fields through VB.net in Visual Studio?

EDIT:

The ultimate goal is to use the image viewer/editer that I built, to sort thousands of images of random webjunk I have collected over the years. Upon viewing the image (say "00001.jpg") and figureing out what it is ("ceiling cat sends son" picture of a lol cat), I want to type in the description (already done in the form). When I hit enter I want to rename the file (from "00001.jpg" to "ceiling-cat-sends-son.jpg", then fill in the keywords, title, subject, and comments fields with the same data: "ceiling cat sends son".

This will help with local indexing and with my (later) automating a SQL server referential database for use with site wide searches on my website. The ONLY thing I can't seem to figure out is how to modify those four fields as if I had right-clicked the file and added the keywords.

1条回答
小情绪 Triste *
2楼-- · 2019-05-06 22:23

I can only offer you a starting point, since I don't use VB.Net and I only read EXIF data. In C#, if you open file in a System.Drawing.Image instance using:

Image image = System.Drawing.Image.FromFile("path/to/file.jpg");

You can access the raw EXIF data by using image.GetPropertyItem(0x0112), where the list of all available property items are listed here:

http://msdn.microsoft.com/en-us/library/ms534418%28VS.85%29.aspx

Likewise, there's an image.SetPropertyItem(0x0112) method, but I think that will only set it in memory and you will have to save a copy of the image in order to write it out. I think what you want though is the ability to modify the EXIF without touching the actual image, which I do not know how to do.

Using metadata

As I've said in my comment, I recommend that instead of editing the image header information, you should create a Media class that holds that kind of information:

public class Media
{
    public string Title { get; set; }
    public string Subject { get; set; }
    public string Comments { get; set; }
    public string[] Tags { get; set; }
    public string PathToFile { get; set; }
}

Then you would store this record in the database, which makes it really easy to search on. If you need the actual file, use the PathToFile property to locate it.

查看更多
登录 后发表回答