// ***************************************************************************************************** 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.ミライ, "ミライ")); }
/// <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); }
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); }
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); }
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)); }
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); }
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)); } }