本文主要是图片加水印自动上传,代码已经上传github。

图片加水印,我的方法,简单,一个好的方法是毒逆天大神的图片加水印方法或http://daily.zhihu.com/story/8812028

我们现在用我的方法,就是加一个TextBlock,然后获得屏幕,很简单,然后我们把水印图保存。

我们可能有很多地方需要上传,我现在使用是九幽,之前有smms的图床,我们做一个通用任务。

  • Guid 上传的Guid,为了识别任务

  • File 要上传的图片

  • Name 上传图片的名字,没有用

  • OnUploaded 上传完成EventHandler 成功true

  • Url 上传成功返回图片

  • Scale 缩放比例,如果没有设置,默认-1,上传图片不缩放

  • Width 默认-1,图片宽度,有设置上传为设置宽度

  • Height 默认-1,图片高度

  • public abstract void UploadImage() 上传图片,不同的类可以有不同上传

我们类需要传StorageFile,这个必须,因为我们上传必须有文件。

我们做类是因为我们可能有很多个图床,九幽一个,smms一个,还有我们现在不知道的。我们都可以通过填写类来做到。

然后每个类一个抽象的UploadImage,根据每个图床不同,上传我们的图片,上传后一般都是使用OnUploaded ,true就是上传成功。

九幽上传很简单,首先是Nuget下载

我们搜索Jiuyou,有很多九幽的,很好用,但是我们这里下载JyCloud

然后我们写九幽上传,我们基层我们通用任务,我们需要写UploadImage

public class JyUploadImage : UploadImageTask

九幽上传可以有多个函数。

  • sendFileScale 上传图片可以缩放。我们判断Scale》0,如果是,我们就用这函数上传。

  • sendFileCustom 上传图片设置图片宽度和高度,我们判断(uploadImageTask.Width > 0) && (uploadImageTask.Height > 0)

  • sendFileOriginal上传原图

  • sendFileDefault 当图片的宽或高大于某个值时,将高或宽等比缩放到这个值

    九幽上传开始需要appKey,这个可以在http://www.windows.sc创建应用然后得到。

我们先登录http://www.windows.sc,选应用。

我们可以创建应用,我们可以用我们创建的应用,可以看到key

我们创建一个类来放我们的key,我们上传还需要我们的图床密钥。

图床,九幽叫云存储。

我们可以看到我们的key,这个是和应用没关。

我们上传的是我们的StorageFile,上传完可以有ResponseInfo


        private async Task UploadImage(UploadImageTask uploadImageTask)

        {

            //Appid 为静态,有_appid 应用的appid

            //_secretId 九幽的

            ResponseInfo responseInfo;

            if (uploadImageTask.Scale > 0)

            {

                responseInfo = await JyCloudTool.JyCloudTool.sendFileScale(

                    AppId._appId, AppId._secretId, uploadImageTask.File,

                    uploadImageTask.Scale);

            }

            else if ((uploadImageTask.Width > 0) && (uploadImageTask.Height > 0))

            {

                responseInfo = await JyCloudTool.JyCloudTool.sendFileCustom(

                    AppId._appId, AppId._secretId, uploadImageTask.File,

                    (uint) uploadImageTask.Width, (uint) uploadImageTask.Height);

            }

            else

            {

                responseInfo = await JyCloudTool.JyCloudTool.sendFileOriginal(

                    AppId._appId, AppId._secretId, uploadImageTask.File);

            }

            if (responseInfo.respose_Status == 0)

            {

                uploadImageTask.Url = responseInfo.ImgUrl;

                uploadImageTask.OnUploaded?.Invoke(uploadImageTask, true);

            }

            else

            {

                uploadImageTask.OnUploaded?.Invoke(uploadImageTask, false);

            }

        }

respose_Status是上传的状态

0 成功
1 参数缺失
2 服务冻结
3 sdk版本过低
4 密钥错误
5 签名错误(请检查SerectId是否正确)
-1 文件为空
-2 文件大小超出限制(8MB)
-3 接口命令错误
-4 服务器报错
-5 文件类型不支持
-6 积分不足上传失败
-7 未检测到网络连接
-8 文件格式出错,暂时只支持png,jpg格式

源代码:https://github.com/lindexi/UWP/tree/master/uwp/control/BitStamp


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

win10 uwp 九幽图床的更多相关文章

  1. 【广告】win10 uwp 水印图床 含代码

    本文主要是广告我的软件. 图床可以加速大家写博客上传图片的时间,通过简化我们的操作来得到加速. 在写博客的时候,我们发现,我们需要上传一张图片,需要先打开图片,然后选择本地图片,然后上传. 但是我经常 ...

  2. win10 uwp smms图床

    本文,如何使用smms图床上传图片,用到win10 uwp post文件,因为我是渣渣,如果本文有错的,请和我说,在本文评论,或发给我邮箱lindexi_gd@163.com,请不要发不良言论 找到一 ...

  3. win10 UWP 九幽数据分析

    九幽数据统计是统计和分析数据来源,用户使用,先申请账号 http://www.windows.sc 创建应用 图片要72*72 记密钥 在项目Nuget 在App.xaml.cs public App ...

  4. 2019-9-2-win10-uwp-九幽图床

    title author date CreateTime categories win10 uwp 九幽图床 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 1 ...

  5. 2018-2-13-win10-uwp-smms图床

    title author date CreateTime categories win10 uwp smms图床 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 1 ...

  6. win10 uwp 入门

    UWP是什么我在这里就不说,本文主要是介绍如何入门UWP,也是合并我写的博客. 关于UWP介绍可以参见:http://lib.csdn.net/article/csharp/32451 首先需要申请一 ...

  7. win10 uwp 使用 asp dotnet core 做图床服务器客户端

    原文 win10 uwp 使用 asp dotnet core 做图床服务器客户端 本文告诉大家如何在 UWP 做客户端和 asp dotnet core 做服务器端来做一个图床工具   服务器端 从 ...

  8. win10 uwp MVVM 轻量框架

    如果在开发过程,遇到多个页面之间,需要传输信息,那么可能遇到设计的问题.如果因为一个页面内包含多个子页面和多个子页面之间的通信问题找不到一个好的解决方法,那么请看本文.如果因为ViewModel代码越 ...

  9. win10 uwp 商业游戏 1.2.1

    上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊的游戏 希望大家在看这篇文章之前先看win10 uwp 商业游戏,在这个文章告诉了大家如何创建游戏. 修改数值 可以从上一篇的博客的游戏看到升级 ...

随机推荐

  1. 201521123092《java程序设计》第八周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4 ...

  2. 201521123033《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  3. 201521123097《Java程序设计》第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过? ...

  4. Java 第十四周总结

    1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作 2. 使用JDBC连接数据库与Statement 2.1 使用Statement操作数据库.(粘贴一段你认为比较有价值的代码,出现学 ...

  5. 201521123115《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  6. Junit4学习(三)Junit运行流程

    一,验证Junit测试方法的流程 1,在test/com.duo.util右键,新建测试类 2,生成后的代码: package com.duo.util; import static org.juni ...

  7. Eclipse rap 富客户端开发总结(9) : rap上传与下载

    一 上传 上传即将文件上传到服务器上,在客户端需要写相应的脚本,服务器端需要注册相应的 handle 接受客户端的请求. 原理: Rap 的上传和下载是通过普通的 web 的方式进行上传和下载的 ,  ...

  8. Hibernate第十二篇【二级缓存介绍、缓存策略、查询缓存、集合缓存】

    Hibernate二级缓存介绍 前面我们已经讲解过了一级缓存,一级缓存也就是Session缓存,只在Session的范围内有效-作用时间就在Session的作用域中,范围比较小 Hibernate为我 ...

  9. Mybatis(1)

    properties 标签的作用引入外部properties 文件的内容typeAliases 的作用可以用package这个标签批量给这个包下的所有类起一个别名 name属性写包的名字. 默认别名为 ...

  10. PHPFastCGI进程管理器PHP-FPM详解

    PHP-FPM是一个PHPFastCGI进程管理器,是只用于PHP的.      PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中.必须将它patch到你的PH ...