• 【WP7】代码创建png图片


    windows phone提供了一个  WriteableBitmap 类,该类有一个SaveJpeg方法,可以把控件保存为jpg图片,但是jpeg不支持透明颜色,我们可以利用CodePlex上的ImageTools这个类来创建png格式的图片

    http://imagetools.codeplex.com

    下载得到  ImageTools.dll  ImageTools.IO.Png.dll  ImageTools.Utils.dll

    把三个库引用到项目中

    1、创建png图片,保存到隔离存储空间

            private string CreateBackground()
            {
                string tiledirectory = "Shared/ShellContent/Tiles";
                string fullPath = "Shared/ShellContent/Tiles/aa.png";
                //注意:如果该png图片要固定到开始屏幕时,目录必须是Shared/ShellContent/
                
                Grid grid = new Grid
                {
                    Background = new ImageBrush
                    {
                        ImageSource = new BitmapImage
                        {
                            UriSource = new Uri("/test.png", UriKind.Relative),
                            //这里使用项目中的png图片用于合成
                            CreateOptions = BitmapCreateOptions.IgnoreImageCache
                        }
                    },
                    Width = 173,
                    Height = 173
                };
                
                grid.Arrange(new Rect(0d, 0d, 173, 173));
                WriteableBitmap wbmp = new WriteableBitmap(grid, null);
                
                ExtendedImage extendImage = wbmp.ToImage();
    
                using (var store = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    if (!store.DirectoryExists(tiledirectory))
                    {
                        store.CreateDirectory(tiledirectory);
                    }
                    using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(fullPath, FileMode.OpenOrCreate, store))
                    {
                        extendImage.WriteToStream(stream, fullPath);
                    }
                }
                //保存完成,这里文件保存到    "isostore:/Shared/ShellContent/Tiles/aa.png"
            }

    2、下面是使用该png图片

      保存到开始屏幕

            StandardTileData NewTileData = new StandardTileData
            {
                BackgroundImage = new Uri("isostore:/Shared/ShellContent/Tiles/aa.png", UriKind.Absolute)
            };
    
            ShellTile.Create(new Uri("/MainPage.xaml", UriKind.Relative), NewTileData);

      如果是被控件使用时,要把该文件读取出来,好像不能直接使用该地址的uri

            using (var store = IsolatedStorageFile.GetUserStoreForApplication())
            {
                using (IsolatedStorageFileStream fs = new IsolatedStorageFileStream("Shared/ShellContent/Tiles/aa.png", FileMode.Open, store))
                {
                    BitmapImage img = new BitmapImage();
                    img.SetSource(fs);
                    this.image.Source = img;    //赋给Image控件
                }
            }

     https://files.cnblogs.com/bomo/ImageTools.zip

  • 相关阅读:
    HDU1058Humble Numbers(DP)
    HDU1285确定比赛名次(拓扑排序)
    HDU2602Bone Collector(DP,0/1背包)
    HDU1869六度分离(最短路floyd)
    HDU3342Legal or Not(拓扑)
    Dijkstra不能得到含有负权边图的单源最短路径
    HDU1069Monkey and Banana(DP)
    HDU1176免费馅饼(DP)
    DAG上的动态规划
    网络分析中数据包结构的定义
  • 原文地址:https://www.cnblogs.com/bomo/p/2865152.html
Copyright © 2020-2023  润新知