本文主要是图片加水印自动上传,代码已经上传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. 201521123028 《java程序设计》 第7周学习总结

    1. 本周学习总结 2. 书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 Ans: ArrayList的contains源代码 contain源代码 ...

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

    1. 本周学习总结 2. 书面作业 1.clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? 1.子类要实现Clone ...

  3. 201521123029《Java程序设计》第四周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:1. 多态性,多态性是相同的形态,不同的行为(定义),其中父类类型变量可以引用子类对象. ...

  4. 201521123074 《Java程序设计》第2周学习总结

    1.本周学习总结 学习了string类的一些用法,Java编写大致与c相同,但是要注意Java是面向对象的语言.例如两个字符串"=="比较,Java与c可能会有不同结果. 学习了i ...

  5. 201521123112《Java程序设计》第2周学习总结

    1.本周学习总结 本周在课堂面授课粗略讲了<Java学习笔记>中的第三章,其内容大部分都与上学期学习的数据结构差不多,所以只是粗略的复习了一下就带过,然后通过将PTA上的实验便于我们本周的 ...

  6. 201521123056 《Java程序设计》第13周学习总结

    1. 本周学习总结 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 1.1 答: ...

  7. 201521123075 《Java程序设计》第14周学习总结

    1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名) 在自己建立的数据库上执行常见SQL语句(截图) 参 ...

  8. JavaSE集合(十)之Map

    前面给大家介绍了集合家族中的Collection家族,这一篇给大家分享的是集合中的另一个家族就是Map家族.以前的时候学习Map的时候没有很认真的去学习,我觉得很多东西还是不是很清楚. 这次我将总结的 ...

  9. CSS3滤镜(filter--CSS3技术

    filter 属性定义了元素(通常是<img>)的可视效果,例如图片的模糊.饱和度.灰度等……个人感觉功能很强大 1.filter的语法 filter: none | blur() | b ...

  10. JDBC第四篇--【数据库连接池、DbUtils框架、分页】

    1.数据库连接池 什么是数据库连接池 简单来说:数据库连接池就是提供连接的. 为什么我们要使用数据库连接池 数据库的连接的建立和关闭是非常消耗资源的 频繁地打开.关闭连接造成系统性能低下 编写连接池 ...