?????? ASP.NET Web ?????????????????
????
???????ASP.NET Web ?????????????????????? Aspose ???????????????????????????: ???????????? zip ?????? Web ????????????????????????????????????? ????????????????? Web ???????????
ASP.NET Web ???????????
Visual Studio ??????Razor Pages ???? ASP.NET Core Web ???????????????
NuGet ????? ??????????????????? 2 ??????????????????
Aspose.Zip ???????
Aspose.Imaging ???
??????? ??????????????Index.cshtml????????????<form> ???? enctype="multipart/form-data" ??????????????????????????????Web?????????????????????2 ????????????????1 ?????????????????? file ??????? 1 ?????????????? number ??????
???????? HTML ???????????????
1<form method="post" enctype="multipart/form-data">
2 <span>Images archive: </span><input type="file" name="uploadedFile" required="required" />
3 <br />
4 <span>Rotation angle: </span><input type="number" value="30" min="0" max="360" name="rotateDegree" required="required" />
5 <br />
6 <input type="submit" value="Upload" />
7</form>??????????????????
????????????
???????????????? zip ?????????????????????????????????????????????????????? ASP.NET ????????????Index.cshtml.cs?????????OnPost???????????????????????????? ??????????? ????? zip ????? ???????????????????????????????
1public void OnPost(IFormFile uploadedFile, int rotateDegree) {
2 using (Archive archive = new Archive(uploadedFile.OpenReadStream())) {
3 foreach (ArchiveEntry entry in archive.Entries) {
4 // Extract image and rotate it.
5 }
6 }
7}?????
Aspose.Imaging ??????????? ???? ???????????????????????????? ???????????:
1 using (MemoryStream rotated = new MemoryStream())
2 {
3 using (RasterImage image = (RasterImage)Image.Load(extracted))
4 {
5 // Before rotation, the image should be cached for better performance
6 if (!image.IsCached)
7 image.CacheData();
8
9 image.Rotate(rotateDegree, true, Color.CornflowerBlue);
10 image.Save(rotated);
11 }
12 }????????????????
????????????????????? ????????????????????????????????? public List<byte[]> ImageBytes { get; ????????????????? } ? IndexModel ???????
??????????????????????? Web ???????????
??? URI ????????????? Base64 ????????????????
????Index.cshtml ??? Razor ?????????????
1@{
2if (Model.ImageBytes != null && Model.ImageBytes.Count > 0) {
3 <h4>Rotated images:</h4>
4 foreach (byte[] image in Model.ImageBytes) {
5 <img src="data:image;base64,@Convert.ToBase64String(image)" width="150"/>
6 }
7 }
8}????????
???????????????????????????????????????????????????????????????
???????????? ??????????????????????????????????????????????????????????????
?????? OnPost ???????
1 public void OnPost(IFormFile uploadedFile, int rotateDegree)
2 {
3 ImageBytes = new List<byte[]>();
4
5 using (Archive archive = new Archive(uploadedFile.OpenReadStream()))
6 {
7 foreach (ArchiveEntry entry in archive.Entries)
8 {
9 if (entry.IsDirectory)
10 continue;
11
12 using (MemoryStream extracted = new MemoryStream())
13 {
14 entry.Open().CopyTo(extracted);
15 extracted.Seek(0, SeekOrigin.Begin);
16 using (MemoryStream rotated = new MemoryStream())
17 {
18 using (RasterImage image = (RasterImage)Image.Load(extracted))
19 {
20 if (!image.IsCached) // Before rotation, the image should be cached for better performance
21 image.CacheData();
22
23 image.Rotate(rotateDegree, true, Color.CornflowerBlue);
24 image.Save(rotated);
25 }
26
27 this.ImageBytes.Add(rotated.ToArray());
28 }
29 }
30 }
31 }
32 }