精华内容
下载资源
问答
  • uubox.net 增加了个性化头像...“上传头像图片”,在选择头像图片时,最好选择尺寸为48x48像素的正方形图片,超过这个尺寸的图片将会自动压缩,支持的图片格式有jpg、png、gif和bmp。 ps:网站注册用户达4000人...
    uubox.net 增加了个性化头像设置功能以及修正了修改个人信息页面在firefox里显示的Bug。



    现在大家可以通过登录到自己的空间,点击“编辑个人信息”->“修改头像”->“上传头像图片”,在选择头像图片时,最好选择尺寸为48x48像素的正方形图片,超过这个尺寸的图片将会自动压缩,支持的图片格式有jpg、png、gif和bmp。

    ps:网站注册用户达4000人,第一组硬盘300GB储存空间宣告使用完毕,昨晚半夜时已启动第二组硬盘,用此帖纪念一下。



    转载于:https://www.cnblogs.com/uubox/archive/2008/01/19/1045509.html

    展开全文
  • 起因 之前项目是用数据库的image格式...下图显示的就是某个用户的头像,以二进制的形式保存在字段photo中,这里用可视的方式显示给大家。 解决方法 既然不想在数据库保存图片,但是现有的图片都保存在数据...

    起因

    之前项目是用数据库的image格式保存图片,但是考虑到图片一旦很大的时候,客户端加载图片的速度就会变得非常慢,导致登录时间很长。因此必须改为用url的方式,将图片的url记录在数据库中,指向一个图片的虚拟存储位置。
    下图显示的就是某个用户的头像,以二进制的形式保存在字段photo中,这里用可视化的方式显示给大家。
    这里写图片描述

    解决方法

    既然不想在数据库保存图片,但是现有的图片都保存在数据库,所以理所当然应该将图片数据(sqlserver是用image二进制的格式保存的)导出并重新保存到png等格式的文件中。这一步当然不能一个个手动的处理,不然效率太慢了。
    解决的方法挺多的,曾考虑过使用c++或是java的方式实现,但思前想后,还是决定用python,因为语法真的超简洁有木有,等下看代码就知道啦~


    首先要做一些准备工作:

    • 安装python2.7.14
      其实只要是2.7系列,应该都是可以的

    • 使用pip安装pyodbc
      pip的使用很简单,拿win10举例,在python的安装路径下,进入Scripts文件夹,按住shift在空白处单击右键,如图所示:
      这里写图片描述
      点击“在此处打开Powershell窗口”按钮,可以在这个目录下开启控制台,而不用在cmd中慢慢敲路径(小技巧)
      然后在控制台输入“pip install pyodbc”,就可以自动安装pyodbc模块了

    • 使用pip安装Pillow
      方法同pyodbc的安装,作用是为了使用PIL的Image模块


    接下来编写代码就可以了:

    import pyodbc
    import io
    from PIL import Image
    #保密起见,这里不给出我的服务器ip地址,用户和密码了
    #数据库使用的是Sql Server 2008,因此driver填写SQL Server Native Client 10.0,其他版本的sql请自行搜索
    conn = pyodbc.connect(r'DRIVER={SQL Server Native Client 10.0};SERVER=***.***.***.***,1433;DATABASE=zfzn02;UID=******;PWD=******')
    cursor = conn.cursor()
    cursor.execute("select * from accounts")
    
    for row in cursor:
        data = row.photo #对应数据库中的photo字段
        account_code = row.account_code #对应数据库的账号字段,也就是手机号
        print("saving " + account_code + " ...")
        image = Image.open(io.BytesIO(data))
        path = "photo\\" + account_code + ".png"
        image.save(path)

    可以看到用python编辑的代码,是不是相当简洁~

    运行结果

    这里写图片描述
    可以看到,每一个image字段中的数据,都被我们导出成了一张张png图片,图片的名字以account_code命名,这也方便了将来我们对图片url的处理。

    展开全文
  • 上传图片-修改头像和编辑话题时候上传图片; 表单验证-使用表单验证类; 文章发布时自动Slug翻译,支持使用多种方式以提高响应; 站点『活跃用户』计算,一小时计算一次; 多角色权限管理-允许站长,管理员权限的...
  • 一般来说,不管网站大小都是有用户的,有用户就有个性需求,比如形形色色的头像...这里给大家提供一种实现方式,只是一个demo,前台采用jquery+cropbox已流的形式上传,后台采用struts2接受图片流并转成为图片格式
  • 注意:这里显示的头像头像路径地址,需要通过formatter方法进行格式化,解决显示格式不一致,同时在对应的路径准备头像图片 //头像格式化 function imageFormt(v, r, i) { return `<img src="${v}" style=...

    1、完善头像

    1.1、新增头像属性

    ①domain
    在这里插入图片描述
    ②页面
    在这里插入图片描述
    注意:这里显示的头像是头像路径地址,需要通过formatter方法进行格式化,解决显示格式不一致,同时在对应的路径准备头像图片

    //头像格式化
    function imageFormt(v, r, i) {
        return `<img src="${v}" style="width: 50px;">`;
    }
    

    2、完善部门

    • 员工与部门是多对一的关系
    • 部门设置为懒加载的时候会出现no session问题,后面讲怎么解决
    • 部门外键一定与数据库一致
    • BaseQuery中创建查询规则需要注意属性问题【看代码】
    • 部门页面展示同样需要formatter格式化
    • 注意页面中部门name的属性问题
    2.1、domain

    ①新建Department 类

    @Entity
    @Table(name = "department")
    public class Department extends BaseDomain{
    
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Override
        public String toString() {
            return "Department{" +
                    "name='" + name + '\'' +
                    ", id=" + id +
                    '}';
        }
    }
    

    ②在Employee类中添加属性,并配置多对一关系

     	@ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name="department_id")
        private Department department;
    
    2.2、其他层

    通过Ctr+F查找替换,勾选mach case区分大小写,将Employee有的复制一份并修改

    • query
    • repository
    • service
    • controller
    3、页面

    ①/department/index.jsp
    复制employee/index.jsp,注意内容修改,属性不同

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@include file="/WEB-INF/views/head.jsp" %>
    <html>
    <head>
        <title>Title</title>
        <%--引入当前页面对应的js文件--%>
        <script src="/js/model/department.js"></script>
    </head>
    <body>
    
    <div id="toolbar">
        <div style="margin-bottom:5px">
            <a href="#" data-method="add" class="easyui-linkbutton" iconCls="icon-add" plain="true">添加</a>
            <a href="#" data-method="edit" class="easyui-linkbutton" iconCls="icon-edit" plain="true">修改</a>
            <a href="#" data-method="delete" class="easyui-linkbutton" iconCls="icon-remove" plain="true">删除</a>
        </div>
    
        <form id="searchForm" method="post">
            部门: <input class="easyui-combobox" name="departmentid"
                       data-options="valueField:'id',textField:'name',url:'/department/list',panelHeight:'auto'"/>
            <a href="#" data-method="search" class="easyui-linkbutton" iconCls="icon-search">查询</a>
        </form>
    </div>
    
    <%--pagination:true分页条--%>
    <table id="datagrid" class="easyui-datagrid"
           data-options="url:'/department/page',fitColumns:true,singleSelect:true,fit:true,pagination:true,toolbar:'#toolbar',onRowContextMenu:showMenu">
        <thead>
        <tr>
            <th data-options="field:'id',width:100">编码</th>
            <th data-options="field:'name',width:100" sortable="true">名称</th>
        </thead>
    </table>
    
    <%--添加或者修改的弹出框--%>
    <div id="editDialog" class="easyui-dialog"
         data-options="iconCls:'icon-save',resizable:true,modal:true,closed:true,buttons:'#btns'">
        <form id="editForm" method="post">
            <table cellpadding="1">
                <tr>
                    <td> 部门</td>
                    <td>
                    <td><input class="easyui-textbox" type="text" name="name" data-options="required:true"/></td>
                    </td>
                </tr>
            </table>
        </form>
        <div id="btns">
            <a href="javascript:;" data-method="save" class="easyui-linkbutton c3" data-options="iconCls:'icon-ok'">确定</a>
            <a href="javascript:;" data-method="close" class="easyui-linkbutton c5"
               data-options="iconCls:'icon-cancel'">取消</a>
        </div>
    </div>
    <div id="gridMenu" class="easyui-menu" style="width:120px;">
        <div data-options="iconCls:'icon-add'" data-method="add">添加</div>
        <div data-options="iconCls:'icon-edit'" data-method="edit">修改</div>
        <div data-options="iconCls:'icon-remove'" data-method="del">删除</div>
    </div>
    
    
    </body>
    </html>
    
    

    ②department.js

    $(function () {
    
        //常用的元素都先在这里获取到
        var datagrid = $("#datagrid");
        var searchForm = $("#searchForm");
        var editForm = $("#editForm");
        var editDialog = $("#editDialog");
    
        $("*[data-method]").on("click", function () {
            //拿到点击触发的方法名
            var methodName = $(this).data("method");
            //动态调用方法
            xuxusheng[methodName]();
    
        })
    
        xuxusheng = {
            //方法的简写,需要javascript language version 6版本才行
            add() {
                //打开面板前把里面的数据清除
                editForm.form("clear");
                //修改添加框的标题
                editDialog.dialog({title:'添加用户'});
                //将密码框显示
                $("*[data-hide]").show();
                //禁用防止传参数
                $("*[data-hide]>td>input").textbox("enable");
                //把添加框(editDialog)打开
                editDialog.dialog("center").dialog("open");
            },
            save(){
                var url = "/department/save";
                console.debug(editForm);
                if ($("#departmentId").val()){
                    url = "/department/update?_cmd=update";
                }
                editForm.form('submit', {
                    //提交路径,变量名相同可以直接写
                    url:url,
    
                    onSubmit: function(){
                        // do some check
                        // return false to prevent submit;
                        //提交前验证
                        return $(this).form('validate');
                    },
                    //data是一个json字符串{"success":true}
                    success:function(data){
                        //把一个Json字符串转成JSON对象
                        //eval("("+data+")")
                        var result = JSON.parse(data);
                        if(result.success){
                            //成功就刷新当前页面
                            datagrid.datagrid("reload");
                        }else{
                            $.messager.alert('警告',`添加失败,原因是:${result.msg}`,"warning");
                        }
                        //关闭对话框
                        xuxusheng.close();
                    }
                });
            },
            close(){
                editDialog.dialog("close");
            },
            edit() {
                //获取选择的行
                var row = datagrid.datagrid("getSelected");
                //判断是否选择了一行
                //没有选择提示并结束
                if (!row) {
                    $.messager.alert('提示', '请先选择一行进行修改', "info");
                    return;
                }else {
                    //将密码框隐藏
                    $("*[data-hide]").hide();
                    //禁用防止传参数
                    $("*[data-hide]>td>input").textbox("disable");
    
                    //修改添加框的标题
                    editDialog.dialog({title:'修改用户'});
                    console.debug(editDialog);
    
    
                    //把添加框(editDialog)打开
                    editDialog.dialog("center").dialog("open");
    
                   //部门回显
                   if (row.department){
                       //有部门就回显部门
                       row["department.id"] = row.department.id;
                   }else {
                       //没有部门就回显空
                       row["department.id"]="";
                   }
                   //回显其他内容
                    editForm.form('load',row);
    
    
                }
    
            },
            delete() {
                //获取选择的行
                var row = datagrid.datagrid("getSelected");
                //判断是否选择了一行
                if (!row) {
                    //没有选择提示并结束
                    $.messager.alert('提示', '请先选择一行进行删除', "info");
                    return;
                }
                //选择了提示是否确认删除
                $.messager.confirm('确认', '您确认想要删除记录吗?', function (r) {
                    if (r) {
                        //通过ajax删除
                        $.get("/department/delete", {id: row.id}, function (result) {
                            //如果成功,重新加载页面
                            if (result.success) {
                                datagrid.datagrid("reload");
                            }else{
                                //失败给出提示消息,这里使用飘~,可以使用el表达式,不用拼接字符串了
                                $.messager.alert('提示',`删除失败,原因是:${result.msg}`,"error");
                            }
    
                        });
                    }
                });
    
            },
            search() {
    
                //1.拿到查询的值,
                // var username = $("#username").val();
                //var email = $("#email").val();
                //下面这个方法需要引入jquery.jdirk.js
                var params = searchForm.serializeObject();
                //2.进行查询
                datagrid.datagrid("load", params);
                //datagrid.datagrid("load", {username: username, email: email});
            }
        };
    
    })
    //头像格式化
    function imageFormt(v,r,i) {
        return`<img src="${v}" style="width: 50px;">`;
    }
    //部门格式化
    function deptFormt(v,r,i) {
        return v?v.name:"";
    }
    
    function showMenu(e, rowIndex, rowData) {
        //选中这个行
        $("#departmentGrid").datagrid("selectRow",rowIndex);
        //第0个位置的面板不支持相应功能
        e.preventDefault();
        $('#gridMenu').menu('show', {
            left: e.pageX,
            top: e.pageY
        });
    }
    

    3、添加/修改方法

    • 点击添加弹出对话框(设置对话框属性:居中,清除内容等)
    • 添加内容之后保存,调用save方法
    • 添加与修改通过是否有id进行判断
    • 修改的时候密码隐藏与禁用
    • 禁用密码造成数据丢失,通过@ModelAttribute(“xxUpdate”)解决数据丢失

    在这里插入图片描述

    3.1、employee.js代码

    add方法

    add() {
                //打开面板前把里面的数据清除
                editForm.form("clear");
                //修改添加框的标题
                editDialog.dialog({title: '添加用户'});
                //将密码框显示
                $("*[data-hide]").show();
                //禁用防止传参数
                $("*[data-hide]>td>input").textbox("enable");
                //把添加框(editDialog)打开
                editDialog.dialog("center").dialog("open");
            },
    

    edit方法

    edit() {
                //获取选择的行
                var row = datagrid.datagrid("getSelected");
                //判断是否选择了一行
                //没有选择提示并结束
                if (!row) {
                    $.messager.alert('提示', '请先选择一行进行修改', "info");
                    return;
                } else {
                    //将密码框隐藏
                    $("*[data-hide]").hide();
                    //禁用防止传参数
                    $("*[data-hide]>td>input").textbox("disable");
    
                    //修改添加框的标题
                    editDialog.dialog({title: '修改用户'});
                    console.debug(editDialog);
    
    
                    //把添加框(editDialog)打开
                    editDialog.dialog("center").dialog("open");
    
                    //部门回显
                    if (row.department) {
                        //有部门就回显部门
                        row["department.id"] = row.department.id;
                    } else {
                        //没有部门就回显空
                        row["department.id"] = "";
                    }
                    //回显其他内容
                    editForm.form('load', row);
    
    
                }
    
            },
    

    save方法

    save() {
                var url = "/employee/save";
                if ($("#employeeId").val()) {
                    url = "/employee/update?_cmd=update";
                }
                editForm.form('submit', {
                    //提交路径,变量名相同可以直接写
                    url: url,
    
                    onSubmit: function () {
                        // do some check
                        // return false to prevent submit;
                        //提交前验证
                        return $(this).form('validate');
                    },
                    //data是一个json字符串{"success":true}
                    success: function (data) {
                        //把一个Json字符串转成JSON对象
                        //eval("("+data+")")
                        var result = JSON.parse(data);
                        if (result.success) {
                            //成功就刷新当前页面
                            datagrid.datagrid("reload");
                        } else {
                            $.messager.alert('警告', `添加失败,原因是:${result.msg}`, "warning");
                        }
                        //关闭对话框
                        vivi.close();
                    }
                });
            },
    
    3.2、EmployeeController
    //解决数据丢失
        @ModelAttribute("xxUpdate")
        public Employee xxUpdate(Long id, String _cmd) {
            if (_cmd != null) {
                Employee employee = employeeService.findOne(id);
                return employee;
            }
            return null;
        }
        //保存方法,返回一个json :{success:true/false,msg:xxx}
        @RequestMapping("/save")
        @ResponseBody
        public JsonResult save(Employee employee) {
            return saveOrUpdate(employee);
        }
    
    
        //修改方法,虽然和保存一样,但是为了权限问题将两个路径分开
        @RequestMapping("/update")
        @ResponseBody
        public JsonResult update(@ModelAttribute("xxUpdate")Employee employee) {
            return saveOrUpdate(employee);
        }
    
        //将保存和修改两个方法合并
        public JsonResult saveOrUpdate(Employee employee) {
            try {
                employeeService.save(employee);
                return new JsonResult();
            } catch (Exception e) {
                e.printStackTrace();
                return new JsonResult(false, e.getMessage());
            }
        }
    }
    

    4、解决no session问题

    4.1、原因分析
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="department_id")
    private Department department;
    

    首先:这里的session是会话的意思,但是和之前的HttpSession是完全不同的东西,在hibernate框架框架中可以理解为sqlsession,与数据库交互的会话。
    其次懒加载的含义是,在hibernate执行查询操作时,并不会真正去数据库中查找出数据,而是要等到使用时才去数据库中查找数据。
    原因 :Hibernate 允许对关联对象、属性进行延迟加载【department】,但是必须保证延迟加载的操作限于同一个 sqlseesion范围之内进行。如果在controller层调用service将查询的结果返回给web层,这时sqlsession已经关闭。我们查询的结果中如果有懒加载的属性,不是同一个session,将拿不到这个属性,导致了懒加载数据的访问异常。

    4.2 、解决办法

    在web.xml文件配置 OpenSessionInViewFilter过滤器,这种方法是延迟session关闭的时机,把一个Hibernate Session和一次完整的请求过程对应的线程相绑定。

     		<filter>
                <filter-name>OpenSessionInViewFilter</filter-name>
                <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
            </filter>
            <filter-mapping>
                <filter-name>OpenSessionInViewFilter</filter-name>
                <url-pattern>/*</url-pattern>
            </filter-mapping>
    

    5、解决no serializer问题

    5.1、原因分析
    • jpa的懒加载对象自己为填加了一些属性,(“hibernateLazyInitializer”,“handler”,“fieldHandler”)
    • 这些属性会影响到SpringMVC返回Json,而返回时有个内省机制
    • 需要序列化对象有一个属性是一类类型,而你使用了Hibernate的延迟加载所以这里是个Hibernate的代理对象。该代理对象有些属性不能被序列化所以会报错。
    5.2、解决办法,两种。

    第一种

    在懒加载属性上面加注解。注意,在实体类上面加是无效的。

     @JsonIgnoreProperties(value{“hibernateLazyInitializer”,“handler”,“fieldHandler”})
     private Department department;
    

    第二种
    第一步:创建一个新的类(重写com.fasterxml.jackson.databind.ObjectMapper)

    package com.vivi.xxl.common;
    
    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.SerializationFeature;
    
    public class CustomMapper extends ObjectMapper {
        public CustomMapper() {
            this.setSerializationInclusion(JsonInclude.Include.NON_NULL);
            // 设置 SerializationFeature.FAIL_ON_EMPTY_BEANS 为 false
            this.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
        }
    }
    

    第二步:在applicationContext-mvc.xml中添加配置

     <!-- Spring MVC 配置 解决 no searilzer -->
        <mvc:annotation-driven>
            <mvc:message-converters>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>application/json; charset=UTF-8</value>
                            <value>application/x-www-form-urlencoded; charset=UTF-8</value>
                        </list>
                    </property>
                    <!-- No serializer:配置 objectMapper 为我们自定义扩展后的 CustomMapper,解决了返回对象有关系对象的报错问题 -->
                    <property name="objectMapper">
                        <bean class="com.xuxusheng.aisell.common.CustomMapper"></bean>
                    </property>
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>
    

    5、解决n-to-n问题

    在这里插入图片描述

    5.1、原因分析

    一个持久化对象的OID被修改。
    在本项目中,employee和department是属于多对一的关系,在修改员工中的部门时,出现了这个错误。
    在这里插入图片描述
    上图可以看到,在修改部门的时候,出现了department.id这个参数。
    正常修改属性,是调用set()方法。
    但是注意,这个 点 之前都会调用 get()方法,显示getDepartment,然后再set id,这里更改id的话就是修改的department的id。
    而此时的department 是一个持久化对象,就会出现这个错误。

    5.2、解决办法

    当修改有关联对象的时候,将关联对象设置为空。

        //解决数据丢失
        @ModelAttribute("xxUpdate")
        public Employee xxUpdate(Long id, String _cmd) {
            if (_cmd != null) {
                Employee employee = employeeService.findOne(id);
                将修改的employee中的department对象设置为null
                employee.setDepartment(null);
                return employee;
            }
            return null;
        }
    
    展开全文
  • 首先准备一张女朋友的图片,把后缀改成cur格式 打开桌面个性菜单 找到主题-》鼠标光标 指针->浏览->替换就行了。 这样子,这样子当女朋友用你的电脑时候,会不会得到小惊喜呢?? ...

    在这里插入图片描述
    首先准备一张女朋友的图片,把后缀改成cur格式
    在这里插入图片描述
    打开桌面个性化菜单
    在这里插入图片描述
    找到主题-》鼠标光标
    在这里插入图片描述
    指针->浏览->替换就行了。
    这样子,这样子当女朋友用你的电脑时候,会不会得到小惊喜呢??

    展开全文
  • 零操作多用途制作,快速自动生成圆角图片、多边形图片、为图片加水印、转换图片格式、压缩图片尺寸,全部支持批量操作。完全本地的软件操作使用,不用上传到网络制作以避免原始图片素材的流失,保证你原始图片的...
  • 零操作多用途制作,快速自动生成圆角图片、多边形图片、为图片加水印、转换图片格式、压缩图片尺寸,全部支持批量操作。完全本地的软件操作使用,不用上传到网络制作以避免原始图片素材的流失,保证你原始图片的...
  • 包括批量格式转换、批量脚本处理、批量文件改名、批量调整尺寸、批量制作缩略图、批量压缩JPG、批量合并图片、批量添加背景、批量截取图片、批量切割图片、批量上传文件、创建PDF文件、创建多页TIF、创建电子相册等...
  • 论坛头像、网店展示图片、博客简图等多用途 13、适合快速制作透明遮罩,为类似大头帖等产品制作遮照素材 14、支持快速制作图形素材,为 PS 等图形制作软件提供漂亮素材 15、操作简单,使用者无需任何绘图操作或能力...
  • 最近研究用Python替换微信聊天截图的头像,和朋友圈截图的头像及昵称。功能已经实现,此处记录研究过程中的代码段。 ...1. 字符串格式化输出 # 依次打开 1.jpg 到 10.jpg from PIL import I...
  • DateUtils:格式化日期 BaseChatRow:聊天对话页面每一个item的基类,定义了通用的UI和点击事件,如头像,昵称,时间戳等。新增聊天类型时,继承该类,并且在自己的布局中定义通用的id MessageAdapter:聊天对话页面...
  • 论坛头像、网店展示图片、博客简图等多用途 13、适合快速制作透明遮罩,为类似大头帖等产品制作遮照素材 14、支持快速制作图形素材,为 PS 等图形制作软件提供漂亮素材 15、操作简单,使用者无需任何绘图操作或能力...
  • PyTorch读取自己的本地图片数据集训练自编码器

    万次阅读 热门讨论 2018-08-28 18:09:46
    下面是图片格式: 上述图片一共有51223张,每个图片的大小为3*96*96。下载地址为:百度云链接 网络的基本结构是通过 卷积层*2,全连接层*n,解码层(全连接层*m)输入和输出的数据是一样的,最多是压缩到三个...
  • Ps教程之神奇的Photoshop自动技术

    千人学习 2020-05-05 15:14:53
    为上万影片批量生成九宫格预览图、为数百个视频自动添加内容不同的片头、自动获取图片的主题颜色、快速生成不限数量并且不重复的漂亮卡通头像、给Photoshop添加猜数字、贪吃蛇游戏等等; 3、利用人工智能技术:在...
  • 5.照片打印、设为封面、设为用户头像等多种操作。 6.在线大头贴拍照功能,并有数十种相框可供选择。 7.数码照片40多种属性EXIF信息显示。 8.照片可批量打包成ZIP文件下载。 9.对相册及照片添加文字简介功能。 10....
  • /// 用于头像处理 /// /// 吴剑 2012-08-08 /// 图片绝对地址 /// 缩略图存放地址 /// 指定的边长(正方型) /// 质量(范围0-100) public static void CutForSquare(string filePath, string fileSaveUrl...
  • // 在初始时,uptoken,uptoken_url,uptoken_func三个参数中必须有一个被设置 // 切如果提供了多个,其优先级为uptoken > uptoken_url > uptoken_func // 其中uptoken是直接...
  • 反馈问题: 反馈问题,请按格式发Issues 参与开源: 欢迎加入JEECG开源团队,共同进步!! Online一分钟: 1分钟快速学习 为什么选择JEECG-BOOT? 1.采用最新主流前后分离框架(Springboot+Mybatis+antd),...
  • iRoundPic v5.3.4442

    2019-03-20 17:26:56
    论坛头像、网店展示图片、博客简图等多用途 11、快速制作透明遮罩,为其他图形制作提供素材 12、使用者无需任何绘图操作或能力,上手即用 13、软件小巧方便、不依靠网络,保证素材安全性 使用特性 软件自身体积...
  • 添加EaseImageView类

    2020-12-01 20:45:43
    <p>EaseUI 类中添加方法的时候格式化了下代码,导致整个类都有改动,其实在这个类里只添加了一个setEaseUIAvatar 方法,其他代码没有改变 <p>EaseImageView 新增的图片控件,主要用在了会话...
  • 前言 Yoniu本是EMLOG模板,后来应众人请求,所以出了TYPECHO版本! 介绍 Yoniu是一款基于BOOTSTRAP3的双栏原创主题,清新简洁,自适应。 主题特色 头部采用透明的bootstrap祖传...格式化css代码 优化部分js代码 ()
  • 2016-12-29 微博格式化显示 2017-01-04 微博详情显示 2017-01-05 微博图片浏览->菜单(保存图片) 2017-01-07 保存图片改为使用fresco本地缓存的,不重新下载;位于主页,点击主页图标刷新微博 2017-01-10 个人中心 ...
  • 世强:管理员头像图片上传和显示逻辑处理,活动添加及上传图片; 港晨:完成Web界面前后端对接; 树民:标准后端接口格式; 伟航:设计设置界面和侧滑栏界面; 陈翔:文档完善、单元测试。 杰麟:编写测试数据; ...
  • 用户头像个性选择设定(卡通头像,用户自己上传的头像,虚拟形象) 方便的管理自己在本网站发表的帖子,留言,相片 收藏好友,好贴,相片等 5) 站内短信 6) 校友聚会 召集大家聚会,讨论,表态(表态的个人信息,如联系...
  • 如何开始 git clone到本地之后 cd reactChatApp ... 消息时间以及朋友圈时间的格式化(参考的微信) 删除好友 删除消息队列中的一项 未完成 第一次添加好友成功系统提示消息(类似qq) 群聊 朋友圈评
  • 头像头像的绝对路径,是索引页面上的图片(140px * 140px)。 favicon:站点图标的绝对路径 google_analytics:Google Analytics(分析)的ID disqus_shortname:Disque注释系统的简称 关于:关于页面上的内容。...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 206
精华内容 82
关键字:

格式化图片头像