Windows 8 Store Apps学习(29) 图片处理

介绍

重新想象 Windows 8 Store Apps 之 图片处理

显示图片

图片的 9 切片

WriteableBitmap

获取和修改图片属性

对图片文件做“缩放/旋转/编码”操作,并保存 操作后的结果

示例

1、演示最基础的图片显示

Image/Display.xaml

<Page
    x:Class="XamlDemo.Image.Display"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:XamlDemo.Image"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="Transparent">
        <StackPanel Margin="120 0 0 0" Orientation="Horizontal" VerticalAlignment="Top">

            <Border BorderBrush="Red" BorderThickness="1" Width="200" Height="100" Margin="20 0 0 0">
                <Image Source="/Assets/Logo.png" Stretch="Uniform" Width="200" Height="100" />
            </Border>

            <Border BorderBrush="Red" BorderThickness="1" Width="200" Height="100" Margin="20 0 0 0">
                <Image Source="ms-appx:///Assets/Logo.png" Stretch="Uniform" Width="200" Height="100" />
            </Border>

            <Border BorderBrush="Red" BorderThickness="1" Width="200" Height="100" Margin="20 0 0 0">
                <Image x:Name="img" Stretch="Uniform" Width="200" Height="100" />
            </Border>

            <Border BorderBrush="Red" BorderThickness="1" Width="200" Height="100" Margin="20 0 0 0">
                <Image x:Name="img2" Stretch="Uniform" Width="200" Height="100" />
            </Border>

        </StackPanel>
    </Grid>
</Page>

Image/Display.xaml.cs

/*
 * 演示最基础的图片显示
 *
 * 注:
 * 1、引用 package 中的图片用:ms-appx:///
 * 2、引用 ApplicationData 中的图片:
 *    a) LocalFolder 对应 ms-appdata:///local/
 *    b) RoamingFolder 对应 ms-appdata:///roaming/
 *    c) TemporaryFolder 对应 ms-appdata:///temp/
 */

using System;
using Windows.Storage.Streams;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media.Imaging;
using Windows.UI.Xaml.Navigation;

namespace XamlDemo.Image
{
    public sealed partial class Display : Page
    {
        public Display()
        {
            this.InitializeComponent();
        }

        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            // code-behind 指定图片源
            img.Source = new BitmapImage(new Uri("ms-appx:///Assets/Logo.png", UriKind.Absolute));

            // code-behind 指定图片源
            RandomAccessStreamReference imageStreamRef = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/Logo.png", UriKind.Absolute));
            IRandomAccessStream imageStream = await imageStreamRef.OpenReadAsync();
            BitmapImage bitmapImage = new BitmapImage();
            bitmapImage.SetSource(imageStream);
            img2.Source = bitmapImage;
        }
    }
}

2、演示图片的 NineGrid

Image/NineGrid.xaml

<Page
    x:Class="XamlDemo.Image.NineGrid"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:XamlDemo.Image"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="Transparent">
        <StackPanel Margin="120 0 0 0" Orientation="Horizontal" VerticalAlignment="Top">

            <!--
                Image - 图片控件
                    NineGrid - 指定9网格(相当于flash中的9切片)中的4条线,Thickness 类型
                        Left - 左边的线相对于图片最左端的距离
                        Top - 上边的线相对于图片最顶端的距离
                        Right - 右边的线相对于图片最右端的距离
                        Bottom - 下边的线相对于图片最底端的距离

                以下示例图片的原始大小为 16 * 16
            -->

            <Image Source="/Assets/NineGrid/Demo.png" Width="200" Height="200" />

            <!--通过指定9切片,防止边框被放大或缩小-->
            <Image Source="/Assets/NineGrid/Demo.png" Width="200" Height="200" NineGrid="1 1 1 1" Margin="20 0 0 0" />

        </StackPanel>
    </Grid>
</Page>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索windows
, 图片
, display
, using
, windows图片apiopencv
bitmapImage
,以便于您获取更多的相关知识。

时间: 2024-11-30 08:23:23

Windows 8 Store Apps学习(29) 图片处理的相关文章

Windows 8 Store Apps学习(39) 契约: Share Contract

介绍 重新想象 Windows 8 Store Apps 之 契约 Share Contract - 右侧边栏称之为 Charm,其 中的"共享"称之为 Share Contract 示例 1.演示如何开发共享源 Contracts/ShareContract/ShareSource.xaml <Page x:Class="XamlDemo.Contracts.ShareContract.ShareSource" xmlns="http://sche

Windows 8 Store Apps学习(69) 其它: 自定义启动屏幕,

重新想象 Windows 8 Store Apps (69) - 其它: 自定义启动屏幕, 程序的运行位置, 保持屏幕的点亮状态, MessageDialog, PopupMenu 作者:webabcd 介绍 重新想象 Windows 8 Store Apps 之 其它 自定义启动屏幕 检查当前呈现的应用程序是运行在本地还是运行在远程桌面或模拟器 保持屏幕的点亮状态 MessageDialog - 信息对话框 PopupMenu - 上下文菜单 示例 1.演示如何自定义启动屏幕 Feature/

Windows 8 Store Apps学习(59) 锁屏

介绍 重新想象 Windows 8 Store Apps 之 锁屏 登录锁屏,获取当前程序的锁屏权限,从锁屏中移除 发送徽章或文本到锁屏 将一个 app 的多个 tile 绑定到锁屏 自定义锁屏图片 示例 1.演示如何登录锁屏,获取当前程序的锁屏权限,从锁屏中移除 LockScreen/AccessLockScreen.xaml <Page x:Class="XamlDemo.LockScreen.AccessLockScreen" xmlns="http://sche

Windows 8 Store Apps学习(58) 微软账号

介绍 重新想象 Windows 8 Store Apps 之 微软账号 获取微软账号的用户相关的信息 获取或设置微软账号的图片和视频 微软账号的验证,和相关信息的获取   示例 1.演示如何获取微软账号的用户相关的信息 Account/AccountInfo.xaml <Page x:Class="XamlDemo.Account.AccountInfo" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/prese

Windows 8 Store Apps学习(57) 本地化和全球化

介绍 重新想象 Windows 8 Store Apps 之 本地化和全球化 本地化 - Demo 本地化 - 改变语言 全球化 - Demo 全球化 - 格式化数字 示例 1.演示本地化的基本应用 Localization/LocalizationDemo.xaml <Page x:Class="XamlDemo.Localization.LocalizationDemo" xmlns="http://schemas.microsoft.com/winfx/2006/

Windows 8 Store Apps学习(41) 打印

介绍 重新想象 Windows 8 Store Apps 之 打印 示例 1.需要打印的文档 Print/PrintPage.xaml <Page x:Class="XamlDemo.Print.PrintPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xam

Windows 8 Store Apps学习(40) 剪切板操作

剪切板: 复制/粘贴文本, html, 图片, 文件 介绍 重新想象 Windows 8 Store Apps 之 剪切板 Clipboard - 剪切板 复制/粘贴文本 复制/粘贴html 复制/粘贴图片 复制/粘贴文件 示例 1.演示剪切板的基本应用 Clipboard/Demo.xaml <Page x:Class="XamlDemo.Clipboard.Demo" xmlns="http://schemas.microsoft.com/winfx/2006/xa

Windows 8 Store Apps学习(35) 通知: Toast 详解

介绍 重新想象 Windows 8 Store Apps 之 通知 Toast - 基本应用参见 http://www.cnblogs.com/webabcd/archive/2013/06/17/3139740.html Toast - 纯文本 toast Toast - 图文 toast Toast - toast 的提示音 Toast - 按计划弹出 toast 示例 1.演示纯文本 toast 的 4 个模板 Notification/Toast/ToastWithText.xaml <

Windows 8 Store Apps学习(24) Application Data和Package中的文件操作

文件系统: Application Data 中的文件操作, Package 中的文件操作 介绍 重新想象 Windows 8 Store Apps 之 文件系统 Application Data(应用程序数据存储) 中的文件操作 Application Data(应用程序数据存储) 中的"设置"操作 通过 uri 引用 Application Data(应用程序数据存储) 中的媒体(图片.视频或音频) 访问 Package 中的文件 访问可移动存储 示例 1.演示如何在 Applic