示例#1
0
 // *****************************************************************************************************
 public void ListupFiles()
 {
     m_PicDatas.Clear();
     try
     {
         //画像フォルダがあるか確認なければ作る
         if (m_PictureFolder != "")
         {
             //検索して画像のリストアップ
             string[] files = Directory.GetFiles(m_PictureFolder, "*.*", SearchOption.AllDirectories);
             foreach (string s in files)
             {
                 string e = Path.GetExtension(s).ToLower();
                 if ((e == ".jpg") || (e == ".png") || (e == ".bmp"))
                 {
                     PicData pd = LoadPicData(s);
                     if (pd.name != "")
                     {
                         m_PicDatas.Add(pd);
                         if (m_PicDatas.Count > 30)
                         {
                             break;
                         }
                     }
                 }
             }
         }
     }
     catch
     {
     }
     m_PicDatas.Add(LoadResPicData(Properties.Resources._None, "_None"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.FIG, "FIG"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.MAG, "MAG"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.PRI, "PRI"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.BIS, "BIS"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.LOR, "LOR"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.SAM, "SAM"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.THI, "THI"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.NIN, "NIN"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.あ, "あ"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.あいね, "あいね"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.ひびき, "ひひ゛き"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.まいか, "まいか"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.まひる, "まひる"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.みお, "みお"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.ゆめ, "ゆめ"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.らき, "らき"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.アリシア, "アリシア"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.エルザ, "エルサ゛"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.カレン, "カレン"));
     m_PicDatas.Add(LoadResPicData(Properties.Resources.ミライ, "ミライ"));
 }
示例#2
0
        /// <summary>
        /// 精灵资源加载(资源key,数据key)
        /// </summary>
        /// <param name="textureName"></param>
        /// <param name="dataName"></param>
        /// <returns></returns>
        Sprite[] LoadSprite(string textureName, string dataName)
        {
            // 加载图片
            Texture2D texture = AssetManager.GetAsset <Texture2D>(textureName + ".png");
            // 加载数据
            TextAsset data = AssetManager.GetAsset <TextAsset>(dataName + ".bytes");

            Debug.Log(dataName + ".bytes");
            int index = 0;
            int len   = BitConverter.ToInt32(data.bytes, index);

            index += 4;
            // 数据集合
            PicData[] pic_data = new PicData[len];
            // 图片集合
            Sprite[] pic = new Sprite[len];
            // 取数据
            for (int i = 0; i < len; i++)
            {
                pic_data[i].x    = BitConverter.ToInt32(data.bytes, index);
                index           += 4;
                pic_data[i].y    = BitConverter.ToInt32(data.bytes, index);
                index           += 4;
                pic_data[i].w    = BitConverter.ToInt32(data.bytes, index);
                index           += 4;
                pic_data[i].h    = BitConverter.ToInt32(data.bytes, index);
                index           += 4;
                pic_data[i].offx = BitConverter.ToInt32(data.bytes, index);
                index           += 4;
                pic_data[i].offy = BitConverter.ToInt32(data.bytes, index);
                index           += 4;
                pic_data[i].y    = texture.height - pic_data[i].y - pic_data[i].h;
            }

            // 裁图片
            for (int i = 0; i < len; i++)
            {
                pic[i] = Sprite.Create(texture, new Rect(pic_data[i].x, pic_data[i].y, pic_data[i].w, pic_data[i].h),
                                       new Vector2(pic_data[i].offx / pic_data[i].w, pic_data[i].offy / pic_data[i].h));
            }

            // 返回裁剪好的精灵图组
            return(pic);
        }
示例#3
0
        public PicData LoadResPicData(Bitmap bmp, string nm)
        {
            PicData ret = new PicData();

            try
            {
                ret.bmp = new Bitmap(100, 100);
                Graphics g = Graphics.FromImage(ret.bmp);
                int      w = bmp.Width;
                if (bmp.Width > bmp.Height)
                {
                    w = bmp.Height;
                }
                g.DrawImage(bmp, new Rectangle(0, 0, 100, 100), new Rectangle(0, 0, w, w), GraphicsUnit.Pixel);
                ret.name = nm;
            }
            catch
            {
                ret.name = "";
                ret.bmp  = null;
            }
            return(ret);
        }
示例#4
0
        public PicData LoadPicData(string s)
        {
            PicData ret = new PicData();

            try
            {
                Image img = Image.FromFile(s);
                ret.bmp = new Bitmap(100, 100);
                Graphics g = Graphics.FromImage(ret.bmp);
                int      w = img.Width;
                if (img.Width > img.Height)
                {
                    w = img.Height;
                }
                g.DrawImage(img, new Rectangle(0, 0, 100, 100), new Rectangle(0, 0, w, w), GraphicsUnit.Pixel);
                ret.name = Path.GetFileNameWithoutExtension(s);
            }
            catch
            {
                ret.name = "";
                ret.bmp  = null;
            }
            return(ret);
        }
示例#5
0
        public IHttpActionResult EditVehicle()
        {
            var httpRequest = HttpContext.Current.Request;

            int     vehicleId = Int32.Parse(httpRequest["VehicleId"]);
            Vehicle vehicle   = _unitOfWork.Vehicles.Get(vehicleId);

            if (vehicle == null)
            {
                return(BadRequest("Office does not exist"));
            }

            var jsonObj = JsonConvert.SerializeObject(vehicle, Formatting.None, setting);

            var eTag = ETagHelper.GetETag(Encoding.UTF8.GetBytes(jsonObj));


            if (HttpContext.Current.Request.Headers.Get(ETagHelper.MATCH_HEADER) == null || HttpContext.Current.Request.Headers[ETagHelper.MATCH_HEADER].Trim('"') != eTag)
            {
                HttpContext.Current.Response.Headers.Add("Access-Control-Expose-Headers", ETagHelper.ETAG_HEADER);
                HttpContext.Current.Response.Headers.Add(ETagHelper.ETAG_HEADER, JsonConvert.SerializeObject(eTag));
                return(new StatusCodeResult(HttpStatusCode.PreconditionFailed, new HttpRequestMessage()));
            }



            int numberOfImages = Int32.Parse(httpRequest["ImagesNum"]);

            vehicle.Model               = httpRequest["Model"].Trim();
            vehicle.Description         = httpRequest["Description"].Trim();
            vehicle.Manufacturer        = httpRequest["Manufacturer"].Trim();
            vehicle.YearOfManufacturing = httpRequest["YearOfManufacturing"];

            vehicle.TypeId      = Int32.Parse(httpRequest["TypeId"]);
            vehicle.HourlyPrice = double.Parse(httpRequest["HourlyPrice"]);

            try
            {
                _unitOfWork.Vehicles.Update(vehicle);
                _unitOfWork.Complete();
            }
            catch
            {
                return(BadRequest("Vehicle could not be editer"));
            }

            List <VehiclePicture> pictures = _unitOfWork.VehiclePictures.Find(x => x.VehicleId == vehicleId).ToList();


            if (numberOfImages > 0)
            {
                List <PicData> picsData = new List <PicData>();
                for (int i = 0; i < numberOfImages; i++)
                {
                    var postedFile = httpRequest.Files[String.Format("Image{0}", i)];
                    var imgName    = new string(Path.GetFileNameWithoutExtension(postedFile.FileName).ToArray()).Replace(" ", "-") + Path.GetExtension(postedFile.FileName);
                    if (imgName == "default-placeholder.png")
                    {
                        continue;
                    }
                    picsData.Add(new PicData()
                    {
                        name = imgName, position = i
                    });
                }
                foreach (VehiclePicture picture in pictures)
                {
                    PicData picData = picsData.Find(x => x.name == picture.Data);
                    if (picData == null)
                    {
                        if (File.Exists(HttpRuntime.AppDomainAppPath + "Images\\" + picture.Data))
                        {
                            File.Delete(HttpRuntime.AppDomainAppPath + "Images\\" + picture.Data);
                        }
                        _unitOfWork.VehiclePictures.Remove(picture);
                        _unitOfWork.Complete();
                    }
                    else
                    {
                        picsData.Remove(picData);
                    }
                }

                foreach (PicData picData in picsData)
                {
                    var postedFile = httpRequest.Files[String.Format("Image{0}", picData.position)];
                    picData.name = new string(Path.GetFileNameWithoutExtension(postedFile.FileName).Take(10).ToArray()).Replace(" ", "-");
                    picData.name = picData.name + DateTime.Now.ToString("yymmssfff") + Path.GetExtension(postedFile.FileName);
                    var filePath = HttpContext.Current.Server.MapPath("~/Images/" + picData.name);
                    postedFile.SaveAs(filePath);
                    _unitOfWork.VehiclePictures.Add(new VehiclePicture()
                    {
                        Data = picData.name, VehicleId = vehicle.VehicleId
                    });
                    _unitOfWork.Complete();
                }
            }
            jsonObj = JsonConvert.SerializeObject(vehicle, Formatting.None, setting);

            eTag = ETagHelper.GetETag(Encoding.UTF8.GetBytes(jsonObj));
            HttpContext.Current.Response.Headers.Add("Access-Control-Expose-Headers", ETagHelper.ETAG_HEADER);
            HttpContext.Current.Response.Headers.Add(ETagHelper.ETAG_HEADER, JsonConvert.SerializeObject(eTag));

            return(Created("Vehicle was edited", vehicle));
        }
示例#6
0
        private static int MyNETPICSTREAM_NOTIFY(UInt32 _uiRecvID, int _lCommand, IntPtr _pvCallBackInfo, Int32 _BufLen, IntPtr _iUser)
        {
            if (null == _pvCallBackInfo)
            {
                return(-1);
            }

            if (_uiRecvID != g_uiRecvID)
            {
                return(-1);
            }

            if (SDKTypes.NET_PICSTREAM_CMD_ITS != _lCommand)
            {
                return(0);
            }

            if (g_iCount++ >= SDKTypes.MAX_SAVE_PCTURE_COUNT)
            {
                Console.WriteLine("save picture over 2000!\n");
                return(-1);
            }

            IntPtr       ptVca         = _pvCallBackInfo;
            ItsPicStream tItsPicStream = (ItsPicStream)Marshal.PtrToStructure(ptVca, typeof(ItsPicStream));

            int    iPlateColor   = tItsPicStream.iPlateColor;
            string strPlateColor = "";

            if (iPlateColor >= 0 && iPlateColor < g_strPlateColor.Length)
            {
                strPlateColor = g_strPlateColor[iPlateColor];
            }
            else
            {
                strPlateColor = "未知";
            }
            int    iCarColor   = tItsPicStream.iCarColor;
            string strCarColor = "";

            if (iCarColor >= 0 && iCarColor < g_strCarColor.Length)
            {
                strCarColor = g_strCarColor[iCarColor];
            }
            else
            {
                strCarColor = "未知";
            }

            Console.WriteLine("picture info:iPicCount(" + tItsPicStream.iPicCount + "),cCameraIP(" + tItsPicStream.strCameraIP +
                              ")" + "cPlate(" + tItsPicStream.strPlate + ")," + "PlateColor(" + strPlateColor + ")," + "CarColor(" + strCarColor + ")\n");

            //抓拍大图,至多8张
            for (int i = 0; i < tItsPicStream.iPicCount && i < 8; ++i)
            {
                if (null == tItsPicStream.tPicData[i])
                {
                    continue;
                }

                PicData  tPicData  = (PicData)Marshal.PtrToStructure(tItsPicStream.tPicData[i], typeof(PicData));
                PicTime  tTime     = tPicData.tPicTime;
                DateTime tDataTime = new DateTime((int)tTime.uiYear, (int)tTime.uiMonth, (int)tTime.uiDay,
                                                  (int)tTime.uiHour, (int)tTime.uiMinute, (int)tTime.uiSecondsr, (int)tTime.uiMilliseconds);
                string cFileName = ".\\PicStream\\ItsPic-" + tItsPicStream.strCameraIP + "-No" + (g_iCount) + "-Time" + tDataTime.ToString("yyyyMMddhhmmss") + i + ".jpg";
                byte[] btPicData = new byte[tPicData.iDataLen];
                Marshal.Copy(tPicData.piPicData, btPicData, 0, tPicData.iDataLen);
                FileStream fFile = null;
                try
                {
                    fFile = new FileStream(cFileName, FileMode.Create);
                    fFile.Write(btPicData, 0, tPicData.iDataLen);
                }
                catch (IOException e)
                {
                    Console.WriteLine(e.Message);
                }
                finally
                {
                    if (null != fFile)
                    {
                        fFile.Close();
                    }
                }
            }
            //车牌图片
            if (tItsPicStream.iPlatCount > 0 && null != tItsPicStream.tPlatData)
            {
                PicData tPicData  = (PicData)Marshal.PtrToStructure(tItsPicStream.tPlatData, typeof(PicData));
                string  cFileName = ".\\PicStream\\ItsPlat-" + tItsPicStream.strCameraIP + "-No" + (g_iCount) + "CP" + ".jpg";
                byte[]  btPicData = new byte[tPicData.iDataLen];
                Marshal.Copy(tPicData.piPicData, btPicData, 0, tPicData.iDataLen);
                FileStream fFile = new FileStream(cFileName, FileMode.Create);
                if (null != fFile)
                {
                    fFile.Write(btPicData, 0, tPicData.iDataLen);
                    fFile.Close();
                }
            }
            //人脸图片
            for (int i = 0; i < tItsPicStream.iFaceCount && i < 3; ++i)
            {
                if (null == tItsPicStream.tFaceData[i])
                {
                    continue;
                }
                PicData tPicData  = (PicData)Marshal.PtrToStructure(tItsPicStream.tFaceData[i], typeof(PicData));
                string  cFileName = ".\\PicStream\\ItsFace-" + tItsPicStream.strCameraIP + "-No" + (g_iCount) + "CP_" + i + ".jpg";
                byte[]  btPicData = new byte[tPicData.iDataLen];
                Marshal.Copy(tPicData.piPicData, btPicData, 0, tPicData.iDataLen);
                FileStream fFile = new FileStream(cFileName, FileMode.Create);
                if (null != fFile)
                {
                    fFile.Write(btPicData, 0, tPicData.iDataLen);
                    fFile.Close();
                }
            }
            return(0);
        }
示例#7
0
        public async Task <JsonResult> Upload([FromServices] IHostingEnvironment environment, UploadModel uploadModel, string userCode)
        {
            var data = new PicData();

            try
            {
                string path = string.Empty;
                var    file = uploadModel.file;
                if (file == null)
                {
                    data.Msg = "请选择上传的文件。"; data.IsUp = false; return(Json(data));
                }
                //格式限制
                var allowType = new string[] { "image/jpg", "image/jpeg", "image/png" };
                if (!allowType.Contains(file.ContentType))
                {
                    data.IsUp = false;
                    data.Msg  = "图片格式错误";
                    return(Json(data));
                }


                if (file.Length > 1024 * 1024)
                {
                    data.IsUp = false;
                    data.Msg  = "图片过大";
                    return(Json(data));
                }

                string webRootPath = environment.WebRootPath;
                string dirPath     = "Upload/HeadImg/" + DateTime.Now.ToString("yyyy-MM-dd");
                string webDirPath  = Path.Combine(webRootPath, dirPath);
                if (!Directory.Exists(webDirPath))
                {
                    Directory.CreateDirectory(webDirPath);
                }
                //string filePath = Encryption.MD5Str(file.FileName);
                FileInfo fileInfo = new FileInfo(file.FileName);
                string   filePath = Encryption.MD5Str(file.FileName) + fileInfo.Extension;
                string   strpath  = Path.Combine(webDirPath, filePath);

                using (var stream = new FileStream(strpath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
                {
                    await file.CopyToAsync(stream);
                }
                data.IsUp = true;
                data.Msg  = "上传成功";
                data.Path = _appSettings.WebSite + "/" + dirPath + "/" + filePath;

                User user;
                if (!string.IsNullOrEmpty(userCode))
                {
                    user = new User {
                        Code = userCode, HeadImg = data.Path, UpType = "imgHead"
                    };
                    await _userService.UpUser(user);

                    user = await _userService.Get(userCode);

                    // 刷新缓存
                    _cacheService.Replace(userCode + "-" + SysConsts.USERINFO, user);
                }

                return(Json(data));
            }
            catch (Exception ex)
            {
                _logService.Error(string.Format("上传头像失败!"), ex);
                data.IsUp = false;
                data.Msg  = "上传失败!";
                return(Json(data));
            }
        }