public static string DeSerialize(APIResponseJSON json)
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(APIResponseJSON));

            var stream = new MemoryStream();
            serializer.WriteObject(stream, json);
            byte[] strarray = stream.ToArray();
            string result = Encoding.UTF8.GetString(strarray, 0, strarray.Length);
            return result;
        }
Exemplo n.º 2
0
        public static async Task<string[]> getTag(string url)
        {
            CloudVision cv = new CloudVision();
            APIResponseJSON result = new APIResponseJSON();
            string[] resulttags;

            cv.Filename = new Uri(url);
            result = await cv.GetResult();
            resulttags = await CV2Tag.getTag(result);
            return resulttags;
        }
Exemplo n.º 3
0
        public static async Task<string[]> getTag(APIResponseJSON input)
        {
            List<string> result = new List<string>();

            if(input.responses != null)
            {
                var response = input.responses[0];
                string mid;
                KnowledgeGraphAPI kga = new KnowledgeGraphAPI();
                KnowledgeGraphResponseJSON kgrj;

                // 顔判定
                if (response.faceAnnotations != null) {
                    // 顔の人数を追加
                    int facecount = response.faceAnnotations.Length;
                    if (facecount == 1) {
                        result.Add("自撮り");
                    }
                    else
                    {
                        result.Add(facecount + "人で撮影");
                    }
                }

                // ランドマーク
                if (response.landmarkAnnotations != null)
                {
                    foreach (var l in response.landmarkAnnotations)
                    {
                        mid = l.mid;
                        kgrj = await kga.GetResult(mid);
                        if (kgrj.itemListElement.Length > 0)
                        {
                            result.Add(kgrj.itemListElement[0].result.name);
                        }
                        else
                        {
                            // 多分追加しなくていい
                            //result.Add(l.description);
                        }
                    }
                }

                // その他の判定
                if (response.labelAnnotations != null) {
                    foreach(var l in response.labelAnnotations)
                    {
                        mid = l.mid;
                        kgrj = await kga.GetResult(mid);
                        if (kgrj.itemListElement.Length > 0)
                        {
                            result.Add(kgrj.itemListElement[0].result.name);
                        }
                        else
                        {
                            // 多分追加しなくていい
                            result.Add(l.description);
                        }
                    }
                }
            }

            return result.ToArray();
        }