61 lines
No EOL
1.8 KiB
C#
61 lines
No EOL
1.8 KiB
C#
using System;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Converters;
|
|
|
|
namespace Shuttle.Api.PhotoshopDTO
|
|
{
|
|
public class TargaBitsPerPixelsConverter : JsonConverter
|
|
{
|
|
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
|
{
|
|
TargaBitsPerPixels bpp = (TargaBitsPerPixels) value;
|
|
|
|
switch (bpp)
|
|
{
|
|
case TargaBitsPerPixels.SIXTEEN:
|
|
writer.WriteValue("TargaBitsPerPixels.SIXTEEN");
|
|
break;
|
|
case TargaBitsPerPixels.THIRTYTWO:
|
|
writer.WriteValue("TargaBitsPerPixels.THIRTYTWO");
|
|
break;
|
|
case TargaBitsPerPixels.TWENTYFOUR:
|
|
writer.WriteValue("TargaBitsPerPixels.TWENTYFOUR");
|
|
break;
|
|
default:
|
|
throw new ArgumentOutOfRangeException();
|
|
}
|
|
}
|
|
|
|
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
|
{
|
|
var enumString = (string) reader.Value;
|
|
return Enum.Parse(typeof(TargaBitsPerPixels), enumString, true);
|
|
|
|
}
|
|
|
|
public override bool CanConvert(Type objectType)
|
|
{
|
|
return objectType == typeof(string);
|
|
}
|
|
}
|
|
|
|
public enum TargaBitsPerPixels
|
|
{
|
|
SIXTEEN,
|
|
THIRTYTWO,
|
|
TWENTYFOUR
|
|
}
|
|
|
|
public struct TargaSaveOptionsDTO
|
|
{
|
|
[JsonProperty("alphaChannels")]
|
|
public bool AlphaChannels { get; set; }
|
|
|
|
[JsonProperty("resolution")]
|
|
[JsonConverter(typeof(TargaBitsPerPixelsConverter))]
|
|
public TargaBitsPerPixels Resolution { get; set; }
|
|
|
|
[JsonProperty("rleCompression")]
|
|
public bool RleCompression { get; set; }
|
|
}
|
|
} |