Ejemplo n.º 1
0
        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"
            });
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
 public async Task <DocumentAsset> CreateDocument([FromForm] AssetUpload asset)
 {
     return(await _command.CreateDocument(asset));
 }
Ejemplo n.º 4
0
 public async Task <ImageAsset> CreateImage([FromForm] AssetUpload asset)
 {
     return(await _command.CreateImage(asset));
 }