Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
GraphEncoder.cs
1using System;
2using System.Collections.Generic;
3using System.Text;
4using System.Threading.Tasks;
5using Waher.Content;
9
11{
16 {
20 public GraphEncoder()
21 {
22 }
23
27 public string[] ContentTypes => new string[] { ImageCodec.ContentTypePng };
28
32 public string[] FileExtensions => new string[] { ImageCodec.FileExtensionPng };
33
41 public bool Encodes(object Object, out Grade Grade, params string[] AcceptedContentTypes)
42 {
43 if ((Object is Graph || Object is PixelInformation) && InternetContent.IsAccepted(ImageCodec.ContentTypePng, AcceptedContentTypes))
44 {
45 Grade = Grade.Ok;
46 return true;
47 }
48 else
49 {
50 Grade = Grade.NotAtAll;
51 return false;
52 }
53 }
54
63 public Task<KeyValuePair<byte[], string>> EncodeAsync(object Object, Encoding Encoding, params string[] AcceptedContentTypes)
64 {
65 if (!(Object is PixelInformation Pixels))
66 {
67 if (Object is Graph G)
68 Pixels = G.CreatePixels();
69 else
70 throw new ArgumentException("Object not PixelInformation or Graph.", nameof(Object));
71 }
72
73 return Task.FromResult(new KeyValuePair<byte[], string>(Pixels.EncodeAsPng(), ImageCodec.ContentTypePng));
74 }
75
82 public bool TryGetContentType(string FileExtension, out string ContentType)
83 {
84 if (string.Compare(FileExtension, ImageCodec.FileExtensionPng, true) == 0)
85 {
86 ContentType = ImageCodec.ContentTypePng;
87 return true;
88 }
89 else
90 {
91 ContentType = string.Empty;
92 return false;
93 }
94 }
95
102 public bool TryGetFileExtension(string ContentType, out string FileExtension)
103 {
104 switch (ContentType.ToLower())
105 {
107 FileExtension = ImageCodec.FileExtensionPng;
108 return true;
109
110 default:
111 FileExtension = string.Empty;
112 return false;
113 }
114 }
115
116 }
117}
Image encoder/decoder.
Definition: ImageCodec.cs:14
const string FileExtensionPng
png
Definition: ImageCodec.cs:75
const string ContentTypePng
image/png
Definition: ImageCodec.cs:30
Static class managing encoding and decoding of internet content.
static bool IsAccepted(string ContentType, params string[] AcceptedContentTypes)
Checks if a given content type is acceptable.
Encodes graphs as images
Definition: GraphEncoder.cs:16
Task< KeyValuePair< byte[], string > > EncodeAsync(object Object, Encoding Encoding, params string[] AcceptedContentTypes)
Encodes an object.
Definition: GraphEncoder.cs:63
string[] FileExtensions
Supported file extensions.
Definition: GraphEncoder.cs:32
bool TryGetContentType(string FileExtension, out string ContentType)
Tries to get the content type of an item, given its file extension.
Definition: GraphEncoder.cs:82
bool Encodes(object Object, out Grade Grade, params string[] AcceptedContentTypes)
If the encoder encodes a given object.
Definition: GraphEncoder.cs:41
GraphEncoder()
Encodes graphs as images
Definition: GraphEncoder.cs:20
bool TryGetFileExtension(string ContentType, out string FileExtension)
Tries to get the file extension of an item, given its Content-Type.
string[] ContentTypes
Supported content types.
Definition: GraphEncoder.cs:27
Base class for graphs.
Definition: Graph.cs:79
Contains pixel information
Basic interface for Internet Content encoders. A class implementing this interface and having a defau...
Grade
Grade enumeration
Definition: Grade.cs:7