最近在弄一个要set image类型fileproperty的方法,经过了几天的探索,终于找到了对应的办法,可以解决IGD+错误的问题,干了一些力气活,把每种property对应的value的值取到,然后设置成了一些枚举,通过转化能直接赋值,有需要的可以拿走,算是做了一些贡献,本文只是提供了一种办法,并不是很完美的代码,如果有能够改进或者错误的地方希望大神们指出
public static void SetImagePropertyValue(FileInfo fileinfo, int propertyid,
object value, ImagePropertyTagValueTypes type)
{
//Also can use Bitmap
//http://stackoverflow.com/questions/15231161/value-of-image-property-c
Image image = Image.FromFile(fileinfo.FullName);
byte[] data = null;
if ((short)type == 2)
{
switch (propertyid)
{
case PropertyTagDateTaken:
DateTime tempvalue = (DateTime)value;
data = ConvertDateTimeValue(tempvalue);
break;
default:
string tempValue = (string)value;
data = Encoding.ASCII.GetBytes(tempValue);
break;
}
}
if ((short)type == 3)
{
switch (propertyid)
{
case PropertyTagRating:
data = ConvertRatingValue(value);
break;
default:
int tampa = (int)value;
UInt16 tempvalue = (UInt16)tampa;
data = ConvertInt16ToByteArry(tempval