public async Task <ImageAsset> CreateImage(AssetUpload asset) { var container = _blob.Container.Name; var assetGuid = Guid.NewGuid().ToString(); using (var image = Image.FromStream(asset.File.OpenReadStream())) { var small = image.ResizeSmallerDimensionToTarget(100); var medium = image.ResizeSmallerDimensionToTarget(300); await Task.WhenAll(new[] { _blob.Save(assetGuid, medium.ToBytes(ImageFormat.Png), "image/png"), _blob.Save($"{assetGuid}-s", small.ToBytes(ImageFormat.Png), "image/png") }); } return(new ImageAsset { Url = $"{GetBaseUrl()}{container}/{assetGuid}", ThumbnailUrl = $"{GetBaseUrl()}{container}/{assetGuid}-s" }); }
/// <summary> /// Upload a terrain RAW file /// </summary> /// <param name="fileData">A byte array containing the encoded terrain data</param> /// <param name="fileName">The name of the file being uploaded</param> /// <returns>The Id of the transfer request</returns> public UUID UploadTerrain(byte[] fileData, string fileName) { AssetUpload upload = new AssetUpload(); upload.AssetData = fileData; upload.AssetType = AssetType.Unknown; upload.Size = fileData.Length; upload.ID = UUID.Random(); // Tell the library we have a pending file to upload Client.Assets.SetPendingAssetUploadData(upload); // Create and populate a list with commands specific to uploading a raw terrain file List <String> paramList = new List <string>(); paramList.Add("upload filename"); paramList.Add(fileName); // Tell the simulator we have a new raw file to upload Client.Network.CurrentSim.Estate.EstateOwnerMessage("terrain", paramList); return(upload.ID); }
public async Task <DocumentAsset> CreateDocument([FromForm] AssetUpload asset) { return(await _command.CreateDocument(asset)); }
public async Task <ImageAsset> CreateImage([FromForm] AssetUpload asset) { return(await _command.CreateImage(asset)); }