//FIXME: won't work on non file uris public uint SaveVersion(IImage buffer, bool createVersion) { if (buffer == null) { throw new ApplicationException("invalid (null) image"); } uint version = DefaultVersionId; using (var img = imageFileFactory.Create(DefaultVersion.Uri)) { // Always create a version if the source is not a jpeg for now. createVersion = createVersion || imageFileFactory.IsJpeg(DefaultVersion.Uri.GetExtension()); if (createVersion) { version = CreateDefaultModifiedVersion(DefaultVersionId, false); } try { var versionUri = VersionUri(version); ImageSharpUtils.CreateDerivedVersion(DefaultVersion.Uri, versionUri, 95, buffer); GetVersion(version).ImportMD5 = HashUtils.GenerateMD5(VersionUri(version)); DefaultVersionId = version; } catch (Exception e) { Log.Exception(e); if (createVersion) { DeleteVersion(version); } throw e; } } return(version); }
public new ResxImageResult Upload(IFormFile file, bool useNewFileName = true) { ResxResult result = base.Upload(file, useNewFileName); if (!result.Success) { return(new ResxImageResult(result.Success, result.Message)); } if (!this.IsThumbnail) { Size size = ImageSharpUtils.GetImageSize(base.SaveLocalPath); return(new ResxImageResult() { Success = result.Success, Message = result.Message, ResxAccessUrl = result.ResxAccessUrl, ImageWidth = size.Width, ImageHeight = size.Height }); } else { this.BuildThumbnailPath(); Size size = ImageSharpUtils.ThumbnailImage(base.SaveLocalPath, this.SaveThumbnailLocalPath, this.ThumbnailImageWidth, this.ThumbnailImageHeight, this.ThumbnailQuality); return(new ResxImageResult() { Success = result.Success, Message = result.Message, ResxAccessUrl = result.ResxAccessUrl, ImagePreviewUrl = string.Format("{0}/{1}", base.AccessUrl, this.ThumbnailImageName), ImageWidth = size.Width, ImageHeight = size.Height }); } }