none
win8 通过GetThumbnailAsync获取到的缩略图大小,完全不可控!跪求大神帮忙! RRS feed

  • 问题

  • 1:通过GetThumbnailAsync获取一个图片的缩略图(原图大小为64KB,位深度为24),虽然设置了requestedSize,和ThumbnailOptions但得到的缩略图大小根本没规律。例如:设置的ThumbnailMode为PicturesView的时候,requestedSize为256,得到的缩略图大小居然为175KB,而如果ThumbnailMode为PicturesView的时候SingleItem,得到的大小为9KB左右,而设置的requestedSize为125,得到的缩略图大小居然为40KB,然而设置requestedSize为64,得到的缩略图大小为10KB。这设置的requestedSize的越小,得到的缩略图大小不是应该越来越小嘛,怎么大小会越大呢?给人感觉多没办法控制这个大小了,有什么办法可以控制?小弟下面贴出代码,看是不是小弟写的有问题,望大神帮忙!

    2:我通过查看得到的那三个缩略图发现像素是有根据requestedSize来改变,但图片详细信息里的位深度不一样,requestedSize为256的深度为24,而其他两个的位深度却是32.是不是因为位深度导致做出来的缩略图越来越大?如果真是位深度的原因,那在代码中怎么设置这个值,因为我在GetThumbnailAsync得到的缩略图对象中没有发现有位深度这个属性。我们要如何才能设置位深度?

    这是requestedSize为256的缩略图详细信息   这个是requestedSize为125的缩略图详细信息

     

    3:如果我想做的requestedSize为256 希望得到的是256×256像素的缩略图,我该怎么设置,从现在做出来的看到,系统好像是默认会有一个固定的比例来缩放,而不是我设置256就是256×256.如何设置可以达到这个效果

     

    以下是获取缩略图的代码,求大神赐教啊!

     

     uint iPix = Convert.ToUInt32(ipix);   //传入的需要的像素大小,如256,125,64

                StorageItemThumbnail myThumb = await myFile.GetThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.SingleItem, iPix,ThumbnailOptions.ResizeThumbnail);

                BitmapImage myBitMap = new BitmapImage();
                myBitMap.CreateOptions = BitmapCreateOptions.IgnoreImageCache;

      myBitMap.SetSource(myThumb);
                myThumbImage.Source = myBitMap;

    //将缩略图保存到本地的代码就省略了

     

    2013年9月14日 2:34

答案