public override ExifInterOperability GetInteroperability(BitConverterEx.ByteOrder fileByteOrder) { if (mTag == ExifTag.ExifVersion || mTag == ExifTag.FlashpixVersion || mTag == ExifTag.InteroperabilityVersion) { return(new ExifInterOperability(ExifTagFactory.GetTagID(mTag), 7, 4, new AsciiEncoding().GetBytes(mValue))); } else { byte[] data = new byte[4]; for (int i = 0; i < 4; i++) { data[i] = byte.Parse(mValue[0].ToString()); } return(new ExifInterOperability(ExifTagFactory.GetTagID(mTag), 7, 4, data)); } }
public override ExifInterOperability GetInteroperability(BitConverterEx.ByteOrder fileByteOrder) { //if (mEncoding == null) // enc = "\0\0\0\0\0\0\0\0"; //else if (mEncoding.EncodingName == "US-ASCII") // enc = "ASCII\0\0\0"; //else if (mEncoding.EncodingName == "Japanese (JIS 0208-1990 and 0212-1990)") // enc = "JIS\0\0\0\0\0"; //else if (mEncoding.EncodingName == "Unicode") // enc = "Unicode\0"; //else string enc = "\0\0\0\0\0\0\0\0"; var ascii = new AsciiEncoding(); byte[] benc = ascii.GetBytes(enc); byte[] bstr = (mEncoding == null ? ascii.GetBytes(mValue) : mEncoding.GetBytes(mValue)); byte[] data = new byte[benc.Length + bstr.Length]; Array.Copy(benc, 0, data, 0, benc.Length); Array.Copy(bstr, 0, data, benc.Length, bstr.Length); return(new ExifInterOperability(ExifTagFactory.GetTagID(mTag), 7, (uint)data.Length, data)); }
public override ExifInterOperability GetInteroperability(BitConverterEx.ByteOrder fileByteOrder) { ushort tagid = ExifTagFactory.GetTagID(mTag); Type type = typeof(T); Type basetype = Enum.GetUnderlyingType(type); if (type == typeof(FileSource) || type == typeof(SceneType)) { // UNDEFINED return(new ExifInterOperability(tagid, 7, 1, new byte[] { (byte)((object)mValue) })); } else if (type == typeof(GPSLatitudeRef) || type == typeof(GPSLongitudeRef) || type == typeof(GPSStatus) || type == typeof(GPSMeasureMode) || type == typeof(GPSSpeedRef) || type == typeof(GPSDirectionRef) || type == typeof(GPSDistanceRef)) { // ASCII return(new ExifInterOperability(tagid, 2, 2, new byte[] { (byte)((object)mValue), 0 })); } else if (basetype == typeof(byte)) { // BYTE return(new ExifInterOperability(tagid, 1, 1, new byte[] { (byte)((object)mValue) })); } else if (basetype == typeof(ushort)) { // SHORT return(new ExifInterOperability(tagid, 3, 1, ExifBitConverter.GetBytes((ushort)((object)mValue), BitConverterEx.ByteOrder.System, BitConverterEx.ByteOrder.System))); } else { throw new UnknownEnumTypeException(); } }
public override ExifInterOperability GetInteroperability(BitConverterEx.ByteOrder fileByteOrder) { return(new ExifInterOperability(ExifTagFactory.GetTagID(mTag), 1, 1, new byte[] { mValue })); }
public override ExifInterOperability GetInteroperability(BitConverterEx.ByteOrder fileByteOrder) { return(new ExifInterOperability(ExifTagFactory.GetTagID(mTag), 10, (uint)mValue.Length, ExifBitConverter.GetBytes(mValue, BitConverterEx.ByteOrder.System))); }
public override ExifInterOperability GetInteroperability(BitConverterEx.ByteOrder fileByteOrder) { return(new ExifInterOperability(ExifTagFactory.GetTagID(mTag), 7, (uint)mValue.Length, mValue)); }
public override ExifInterOperability GetInteroperability(BitConverterEx.ByteOrder fileByteOrder) { return(new ExifInterOperability(ExifTagFactory.GetTagID(mTag), 2, (uint)20, ExifBitConverter.GetBytes(mValue, true))); }