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

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 答:我开始做笔记了,在本周学习中的一些笔记 * abstract关键字是为了实现 ...

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

    #1. 本周学习总结(1)学习使用码云存储代码(2)掌握了常见数据类型的使用.转换(3)回顾了前面学过的基本语法(4)复习一二三章内容 #2. 书面作业**Q1.使用Eclipse关联jdk源代码,并 ...

  3. Java第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  4. Java :BufferedWriter类和BufferedReader类的构造方法、主要方法

    BufferedWriter 和 BufferedReader 为带有默认缓冲的字符输出输入流,因为有缓冲区所以效率比没有缓冲区的高. 一.BufferedWriter 类 构造方法:buffered ...

  5. 多线程面试题系列(2): CreateThread与_beginthreadex本质区别

    本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...

  6. pl/sql developer 连接服务器上的数据库

    1, 在本地安装的Oracle中找到目录 oracle\product\11.2.0\dbhome_1\network\admin, 它下面一般有两个文件可以进行编辑tnsnames.ora   li ...

  7. 关于sping quartz定时执行理解与思考

    转载请注明原创出处,谢谢! 一直以为自己理解spring quartz,忽然最近几天发现自己理解的不对,在4月18号的时候,我执行了一个spring quartz的计划如下: 1 0 0 */3 * ...

  8. 使用gc、objgraph干掉python内存泄露与循环引用!

    Python使用引用计数和垃圾回收来做内存管理,前面也写过一遍文章<Python内存优化>,介绍了在python中,如何profile内存使用情况,并做出相应的优化.本文介绍两个更致命的问 ...

  9. Invoke 用法

    转自:http://blog.sina.com.cn/s/blog_5a6f39cf0100s23x.html 在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法 ...

  10. Quartz学习——Quartz简单入门Demo(二)

    要学习Quartz框架,首先大概了解了Quartz的基本知识后,在通过简单的例子入门,一步一个脚印的走下去. 下面介绍Quartz入门的示例,由于Quartz的存储方式分为RAM和JDBC,分别对这两 ...