精华内容
下载资源
问答
  • 有一批头像数据本来都是长方形的,现在要放在一个圆形的头像内,然后就会只显示左边一半,我想要的是显示居中。 代码 <div class="top-photo" :style="'background-image:url(' + avatar + ')'"> .top-...

    需求

    有一批头像数据本来都是长方形的,现在要放在一个圆形的头像框内,然后就会只显示左边一半,我想要的是显示居中。

    代码

    <div class="top-photo"
         :style="'background-image:url(' + avatar + ')'">
    
    .top-photo {
      width: 1.2rem;
      height: 1.2rem;
      border: solid 0.05rem #34b3de;
      border-radius: 50%;
      overflow: hidden;
      background-size: cover;
      background-position: 50%;
      background-color: #ddd;
    }
    
    展开全文
  • 如果不给图片设置外边框,直接给放上去设置边框,当鼠标放上去图片会发生位移,如果给图片初始也加个外边框的话,鼠标放上去只是边框颜色的变化,而图片并不会发生位移&lt;!DOCTYPE HTML&gt;&lt;...

    如果不给图片设置外边框,直接给放上去设置边框,当鼠标放上去图片会发生位移,如果给图片初始也加个外边框的话,鼠标放上去只是边框颜色的变化,而图片并不会发生位移

    <!DOCTYPE HTML>

    <html>
    <head>
    <meta charset=UTF-8>
    <title>图片边框</title>
    <style>
      img{
            width:250px;
            height:200px;
            border:3px solid white;
        }
        img:hover{border:3px solid red}
    </style>
    </head>
    <body>
        <img src="images/liangpi.jpg">
    </body>
    </html>
    展开全文
  • 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,...现在Android上的图片加载框架非常成熟,从最早的老牌图片加载框架UniversalImageLoader,到后来Google推出的Volley,再到后

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53759439

    本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。

    现在Android上的图片加载框架非常成熟,从最早的老牌图片加载框架UniversalImageLoader,到后来Google推出的Volley,再到后来的新兴军Glide和Picasso,当然还有Facebook的Fresco。每一个都非常稳定,功能也都十分强大。但是它们的使用场景基本都是重合的,也就是说我们基本只需要选择其中一个来进行学习和使用就足够了,每一个框架都尝试去掌握的话则有些浪费时间。

    在这几个框架当中,我对Volley和Glide研究得比较深入,对UniversalImageLoader、Picasso和Fresco都只是有一些基本的了解。从易用性上来讲,Glide和Picasso应该都是完胜其他框架的,这两个框架都实在是太简单好用了,大多数情况下加载图片都是一行代码就能解决的,而UniversalImageLoader和Fresco则在这方面略逊一些。

    那么再拿Glide和Picasso对比呢,首先这两个框架的用法非常相似,但其实它们各有特色。Picasso比Glide更加简洁和轻量,Glide比Picasso功能更为丰富。之前已经有人对这两个框架进行过全方面的对比,大家如果想了解更多的话可以去参考一下 这篇文章

    总之,没有最好的框架,只有最适合自己的框架。经过多方面对比之后,我还是决定选择了Glide来进行研究,并且这也是Google官方推荐的图片加载框架。

    说实话,关于Glide的文章我已经筹备了好久,去年这个时候本来就打算要写了,但是一直都没有动笔。因为去年我的大部分时间都放在了写《第二行代码》上面,只能用碎片时间来写写博客,但是Glide的难度远超出了我用碎片时间所能掌握的难度。当然,这里我说的是对它的源码进行解析的难度,不是使用上的难度,Glide的用法是很简单的。所以,我觉得去年我写不好Glide这个题材的文章,也就一直拖到了今年。

    而现在,我花费了大量的精力去研究Glide的源码和各种用法,相信现在已经可以将它非常好地掌握了,因此我准备将我掌握的这些知识整理成一个新的系列,帮忙大家更好地学习Glide。这个Glide系列大概会有8篇左右文章,预计花半年时间写完,将会包括Glide的基本用法、源码解析、高级用法、功能扩展等内容,可能会是目前互联网上最详尽的Glide教程。

    那么本篇文章是这个系列的第一篇文章,我们先来了解一下Glide的基本用法吧。

    开始

    Glide是一款由Bump Technologies开发的图片加载框架,使得我们可以在Android平台上以极度简单的方式加载和展示图片。

    目前,Glide最新的稳定版本是3.7.0,虽然4.0已经推出RC版了,但是暂时问题还比较多。因此,我们这个系列的博客都会使用Glide 3.7.0版本来进行讲解,这个版本的Glide相当成熟和稳定。

    要想使用Glide,首先需要将这个库引入到我们的项目当中。新建一个GlideTest项目,然后在app/build.gradle文件当中添加如下依赖:

    dependencies {
        compile 'com.github.bumptech.glide:glide:3.7.0'
    }

    如果你还在使用Eclipse,可以点击 这里 下载Glide的jar包。

    另外,Glide中需要用到网络功能,因此你还得在AndroidManifest.xml中声明一下网络权限才行:

    <uses-permission android:name="android.permission.INTERNET" />

    就是这么简单,然后我们就可以自由地使用Glide中的任意功能了。

    加载图片

    现在我们就来尝试一下如何使用Glide来加载图片吧。比如这是必应上一张首页美图的地址:

    http://cn.bing.com/az/hprichbg/rb/Dongdaemun_ZH-CN10736487148_1920x1080.jpg

    然后我们想要在程序当中去加载这张图片。

    那么首先打开项目的布局文件,在布局当中加入一个Button和一个ImageView,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Load Image"
            android:onClick="loadImage"
            />
    
        <ImageView
            android:id="@+id/image_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
    </LinearLayout>

    为了让用户点击Button的时候能够将刚才的图片显示在ImageView上,我们需要修改MainActivity中的代码,如下所示:

    public class MainActivity extends AppCompatActivity {
    
        ImageView imageView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            imageView = (ImageView) findViewById(R.id.image_view);
        }
    
        public void loadImage(View view) {
            String url = "http://cn.bing.com/az/hprichbg/rb/Dongdaemun_ZH-CN10736487148_1920x1080.jpg";
            Glide.with(this).load(url).into(imageView);
        }
    
    }

    没错,就是这么简单。现在我们来运行一下程序,效果如下图所示:

    可以看到,一张网络上的图片已经被成功下载,并且展示到ImageView上了。

    而我们到底做了什么?实际上核心的代码就只有这一行而已:

    Glide.with(this).load(url).into(imageView);

    千万不要小看这一行代码,实际上仅仅就这一行代码,你已经可以做非常非常多的事情了,包括加载网络上的图片、加载手机本地的图片、加载应用资源中的图片等等。

    下面我们就来详细解析一下这行代码。

    首先,调用Glide.with()方法用于创建一个加载图片的实例。with()方法可以接收Context、Activity或者Fragment类型的参数。也就是说我们选择的范围非常广,不管是在Activity还是Fragment中调用with()方法,都可以直接传this。那如果调用的地方既不在Activity中也不在Fragment中呢?也没关系,我们可以获取当前应用程序的ApplicationContext,传入到with()方法当中。注意with()方法中传入的实例会决定Glide加载图片的生命周期,如果传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片加载也会停止。如果传入的是ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会停止。

    接下来看一下load()方法,这个方法用于指定待加载的图片资源。Glide支持加载各种各样的图片资源,包括网络图片、本地图片、应用资源、二进制流、Uri对象等等。因此load()方法也有很多个方法重载,除了我们刚才使用的加载一个字符串网址之外,你还可以这样使用load()方法:

    // 加载本地图片
    File file = new File(getExternalCacheDir() + "/image.jpg");
    Glide.with(this).load(file).into(imageView);
    
    // 加载应用资源
    int resource = R.drawable.image;
    Glide.with(this).load(resource).into(imageView);
    
    // 加载二进制流
    byte[] image = getImageBytes();
    Glide.with(this).load(image).into(imageView);
    
    // 加载Uri对象
    Uri imageUri = getImageUri();
    Glide.with(this).load(imageUri).into(imageView);

    最后看一下into()方法,这个方法就很简单了,我们希望让图片显示在哪个ImageView上,把这个ImageView的实例传进去就可以了。当然,into()方法不仅仅是只能接收ImageView类型的参数,还支持很多更丰富的用法,不过那个属于高级技巧,我们会在后面的文章当中学习。

    那么回顾一下Glide最基本的使用方式,其实就是关键的三步走:先with(),再load(),最后into()。熟记这三步,你就已经入门Glide了。

    占位图

    现在我们来学一些Glide的扩展内容。其实刚才所学的三步走就是Glide最核心的东西,而我们后面所要学习的所有东西都是在这个三步走的基础上不断进行扩展而已。

    观察刚才加载网络图片的效果,你会发现,点击了Load Image按钮之后,要稍微等一会图片才会显示出来。这其实很容易理解,因为从网络上下载图片本来就是需要时间的。那么我们有没有办法再优化一下用户体验呢?当然可以,Glide提供了各种各样非常丰富的API支持,其中就包括了占位图功能。

    顾名思义,占位图就是指在图片的加载过程中,我们先显示一张临时的图片,等图片加载出来了再替换成要加载的图片。

    下面我们就来学习一下Glide占位图功能的使用方法,首先我事先准备好了一张loading.jpg图片,用来作为占位图显示。然后修改Glide加载部分的代码,如下所示:

    Glide.with(this)
         .load(url)
         .placeholder(R.drawable.loading)
         .into(imageView);

    没错,就是这么简单。我们只是在刚才的三步走之间插入了一个placeholder()方法,然后将占位图片的资源id传入到这个方法中即可。另外,这个占位图的用法其实也演示了Glide当中绝大多数API的用法,其实就是在load()和into()方法之间串接任意想添加的功能就可以了。

    不过如果你现在重新运行一下代码并点击Load Image,很可能是根本看不到占位图效果的。因为Glide有非常强大的缓存机制,我们刚才加载那张必应美图的时候Glide自动就已经将它缓存下来了,下次加载的时候将会直接从缓存中读取,不会再去网络下载了,因而加载的速度非常快,所以占位图可能根本来不及显示。

    因此这里我们还需要稍微做一点修改,来让占位图能有机会显示出来,修改代码如下所示:

    Glide.with(this)
         .load(url)
         .placeholder(R.drawable.loading)
         .diskCacheStrategy(DiskCacheStrategy.NONE)
         .into(imageView);

    可以看到,这里串接了一个diskCacheStrategy()方法,并传入DiskCacheStrategy.NONE参数,这样就可以禁用掉Glide的缓存功能。

    关于Glide缓存方面的内容我们将会在后面的文章进行详细的讲解,这里只是为了测试占位图功能而加的一个额外配置,暂时你只需要知道禁用缓存必须这么写就可以了。

    现在重新运行一下代码,效果如下图所示:

    可以看到,当点击Load Image按钮之后会立即显示一张占位图,然后等真正的图片加载完成之后会将占位图替换掉。

    当然,这只是占位图的一种,除了这种加载占位图之外,还有一种异常占位图。异常占位图就是指,如果因为某些异常情况导致图片加载失败,比如说手机网络信号不好,这个时候就显示这张异常占位图。

    异常占位图的用法相信你已经可以猜到了,首先准备一张error.jpg图片,然后修改Glide加载部分的代码,如下所示:

    Glide.with(this)
         .load(url)
         .placeholder(R.drawable.loading)
         .error(R.drawable.error)
         .diskCacheStrategy(DiskCacheStrategy.NONE)
         .into(imageView);

    很简单,这里又串接了一个error()方法就可以指定异常占位图了。

    现在你可以将图片的url地址修改成一个不存在的图片地址,或者干脆直接将手机的网络给关了,然后重新运行程序,效果如下图所示:

    这样我们就把Glide提供的占位图功能都掌握了。

    指定图片格式

    我们还需要再了解一下Glide另外一个强大的功能,那就是Glide是支持加载GIF图片的。这一点确实非常牛逼,因为相比之下Jake Warton曾经明确表示过,Picasso是不会支持加载GIF图片的。

    而使用Glide加载GIF图并不需要编写什么额外的代码,Glide内部会自动判断图片格式。比如这是一张GIF图片的URL地址:

    http://p1.pstatp.com/large/166200019850062839d3

    我们只需要将刚才那段加载图片代码中的URL地址替换成上面的地址就可以了,现在重新运行一下代码,效果如下图所示:

    也就是说,不管我们传入的是一张普通图片,还是一张GIF图片,Glide都会自动进行判断,并且可以正确地把它解析并展示出来。

    但是如果我想指定图片的格式该怎么办呢?就比如说,我希望加载的这张图必须是一张静态图片,我不需要Glide自动帮我判断它到底是静图还是GIF图。

    想实现这个功能仍然非常简单,我们只需要再串接一个新的方法就可以了,如下所示:

    Glide.with(this)
         .load(url)
         .asBitmap()
         .placeholder(R.drawable.loading)
         .error(R.drawable.error)
         .diskCacheStrategy(DiskCacheStrategy.NONE)
         .into(imageView);

    可以看到,这里在load()方法的后面加入了一个asBitmap()方法,这个方法的意思就是说这里只允许加载静态图片,不需要Glide去帮我们自动进行图片格式的判断了。

    现在重新运行一下程序,效果如下图所示:

    由于调用了asBitmap()方法,现在GIF图就无法正常播放了,而是会在界面上显示第一帧的图片。

    那么类似地,既然我们能强制指定加载静态图片,就也能强制指定加载动态图片。比如说我们想要实现必须加载动态图片的功能,就可以这样写:

    Glide.with(this)
         .load(url)
         .asGif()
         .placeholder(R.drawable.loading)
         .error(R.drawable.error)
         .diskCacheStrategy(DiskCacheStrategy.NONE)
         .into(imageView);

    这里调用了asGif()方法替代了asBitmap()方法,很好理解,相信不用我多做什么解释了。

    那么既然指定了只允许加载动态图片,如果我们传入了一张静态图片的URL地址又会怎么样呢?试一下就知道了,将图片的URL地址改成刚才的必应美图,然后重新运行代码,效果如下图所示。

    没错,如果指定了只能加载动态图片,而传入的图片却是一张静图的话,那么结果自然就只有加载失败喽。

    指定图片大小

    实际上,使用Glide在绝大多数情况下我们都是不需要指定图片大小的。

    在学习本节内容之前,你可能还需要先了解一个概念,就是我们平时在加载图片的时候很容易会造成内存浪费。什么叫内存浪费呢?比如说一张图片的尺寸是1000*1000像素,但是我们界面上的ImageView可能只有200*200像素,这个时候如果你不对图片进行任何压缩就直接读取到内存中,这就属于内存浪费了,因为程序中根本就用不到这么高像素的图片。

    关于图片压缩这方面,我之前也翻译过Android官方的一篇文章,感兴趣的朋友可以去阅读一下 Android高效加载大图、多图解决方案,有效避免程序OOM

    而使用Glide,我们就完全不用担心图片内存浪费,甚至是内存溢出的问题。因为Glide从来都不会直接将图片的完整尺寸全部加载到内存中,而是用多少加载多少。Glide会自动判断ImageView的大小,然后只将这么大的图片像素加载到内存当中,帮助我们节省内存开支。

    当然,Glide也并没有使用什么神奇的魔法,它内部的实现原理其实就是上面那篇文章当中介绍的技术,因此掌握了最基本的实现原理,你也可以自己实现一套这样的图片压缩机制。

    也正是因为Glide是如此的智能,所以刚才在开始的时候我就说了,在绝大多数情况下我们都是不需要指定图片大小的,因为Glide会自动根据ImageView的大小来决定图片的大小。

    不过,如果你真的有这样的需求,必须给图片指定一个固定的大小,Glide仍然是支持这个功能的。修改Glide加载部分的代码,如下所示:

    Glide.with(this)
         .load(url)
         .placeholder(R.drawable.loading)
         .error(R.drawable.error)
         .diskCacheStrategy(DiskCacheStrategy.NONE)
         .override(100, 100)
         .into(imageView);

    仍然非常简单,这里使用override()方法指定了一个图片的尺寸,也就是说,Glide现在只会将图片加载成100*100像素的尺寸,而不会管你的ImageView的大小是多少了。

    好了,今天是我们这个Glide系列的第一篇文章,写了这么多内容已经算是挺不错的了。现在你已经了解了Glide的基本用法,当然也是一些最常用的用法。下一篇文章当中,我们会尝试去分析Glide的源码,研究一下在这些基本用法的背后,Glide到底执行了什么神奇的操作,能够使得我们加载图片变得这么简单?感兴趣的朋友请继续阅读 Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程

    关注我的技术公众号,每天都有优质技术文章推送。关注我的娱乐公众号,工作、学习累了的时候放松一下自己。

    微信扫一扫下方二维码即可关注:

            

    展开全文
  • 阿诺·施瓦辛格 ·Schwarzenegger.jpg" alt="阿诺·施瓦辛格" width="3%" height="3%"> 搜索 菜单 内容 次要内容 底部说明 </html>
  • 怎么我最右边的搜索图片框放在一起设置在最右边?也就是图一做成图二的效果。![图片说明](https://img-ask.csdn.net/upload/201606/10/1465570247_707839.png)![图片说明]...
  • html – 如何在搜索中添加图标

    千次阅读 2021-06-09 06:34:33
    要涵盖的问题:如何在搜索/表单中添加图标如何在输入字段中添加图标我有以下问题,我无法将FontAwesome fa-search图标放在输入字段/搜索的右侧.这是我的原始代码:@media screen and (min-width: 800px) {#header...

    要涵盖的问题:

    如何在搜索框/表单中添加图标

    如何在输入字段中添加图标

    我有以下问题,我无法将FontAwesome fa-search图标放在输入字段/搜索框的右侧.

    这是我的原始代码:

    @media screen and (min-width: 800px) {

    #header-search-desktop-div {

    position: absolute;

    left: 180px;

    width: 450px;

    margin-top: 0;

    margin-bottom: 0;

    border: 1px solid #881d98;

    border-radius: 24px;

    }

    #header-search-desktop-div #header-search-fa {

    position: absolute;

    color: #7E7E7E;

    z-index: 100;

    font-size: 27px;

    }

    #header-search-desktop-div .fa-search {

    top: 5%;

    left: 1.5%;

    line-height: 0.8em;

    }

    }

    以下代码我收到了答案并进行了更改,它现在的工作方式与上面的图片链接类似:

    #header-search-submit {

    position: absolute;

    z-index: 1;

    padding: 0;

    right: 15px;

    top: 6px;

    font-size: 24px;

    font-family: FontAwesome;

    color: #7B7B7B;

    cursor: pointer;

    background: 0;

    border: 0;

    }

    展开全文
  • 美化上传文件(上传图片框)

    千次阅读 2018-01-25 10:53:43
    64位的图片,然后就可以将结果放在页面上预览了。 这样表现和行为都有了, 既漂亮又有用。 而init()方法就是初始化input表单,让光头司令 type="file">最终变成了下面的代码: class=...
  • 新建图层1 建立选区-填充 照片放在图层1上 按Ctrl+Alt+G 然后 Ctrl+t 调整大小 回车
  • 在多数情况下,我们想要在界面上加载并展示一张图片只需要一行代码就能实现。虽说只有这简简单单的一行代码,但大家可能不知道的是,Glide在背后帮我们默默执行了成吨的工作。这个形容词我想了很久,因为我觉得用...
  • ireport中没有复选的功能大家都知道,那么我下面介绍怎么通过图片来实现复选的功能。 1.首先准备两个图片,一个勾选的图,一个空白的未勾选的图,如下: 2.拖动图形控件,将上面两张图片拉进来,设置两...
  • 原文地址:http://blog.csdn.net/he20101020/article/details/17212395 css: [css] view plain copy   #md-large-widget-content ... box-shadow: 6px 6px 6px rgba(0,0,0,
  • // 图片宽度的一般 private static final int IMAGE_WIDTH = 100 ; private static final int IMAGE_HEIGHT = 100 ; private static final int IMAGE_HALF_WIDTH = IMAGE_WIDTH / 2 ...
  • DIV+CSS图片和文字如何显示同一行

    千次阅读 2021-06-12 02:46:14
    如果文字和图片放在同一个图层的,文字可以做到居中,但是图片就不能,因为图片默认是左上对齐的!如果你令到图片居中了,文字就会相对于图片右下对齐了!如果你想2个都居中的话,就不能他们放在同一个div,或者...
  • 代码和效果如下图 ![图片说明](https://img-ask.csdn.net/upload/201612/15/1481772806_162515.jpg) ![图片说明]...我的style.css没有form-control,是这个原因吗
  • 经验:从ppt复制到word中的图片在导出成PDF后出现黑框怎么解决 更新历史 20190602: 首次发布 在使用ppt和word的过程中,发现一个现象:将ppt中的图片复制到word中时,图片是没问题的,但是将word导出成PDF后,...
  • 在实际项目中,经常有需要将服务器端返回的图片的url地址显示在listview中的情况,如果我们自己去实现的话,大致思路是:1、创建JavaBean2、创建adapter3、创建http请求类4、在活动中对http返回的消息进行解析5、...
  • python使用opencv或...或者是多张图片放在一个窗体内对比展示,而不是同时打开多个窗体。 如果用单纯的用cv2.imshow打开多个窗体来显示多张图片是这样: cv2.namedWindow("original_img", cv2.WINDO...
  • wxpython显示图片于框架中央

    千次阅读 2017-10-26 22:59:59
    原理:通过设置图片的绝对位置使得图片放在正中间,然后检测框架的大小变化,及时调整图片的位置 代码如下:#coding:utf-8 import wx from PIL import Image class Myframe(wx.Frame): def __init__(self,filename...
  • 前一篇文章讲述了Android触屏setOnTouchListener实现突破缩放、移动、绘制和添加水印,继续我的"随手拍"项目完成给图片添加相框、圆形圆角显示图片和图像合成的功能介绍.我主要从三个方面进行讲述,首先如何通过assets...
  • 怎么把图片和文字组合发微信

    千次阅读 2021-01-14 01:14:32
    怎么把图片和文字组合发微信微信朋友圈转发图片和文字的具体步骤:1、打开微信,点击微信页面下方的“发现”,然后点击“朋友圈”;2、进入朋友圈后,选择想要转发的图片和文字,将文字复制下来;3、成功复制文字后...
  • EPLANA4图 EPLAN图,常用属性都有 EPLAN图,常用属性都有 EPLAN图,常用属性都有
  • 根据CSS3里面的动画属性,结合...// 鼠标放在图片图片上下跳动 $('.operative-area>img').mouseover(function(){ $(this).animate({"top":"-10"}); }).mouseout(function(){ $(this).animate({"top":"...
  • HTML给整个框架插入背景图片

    万次阅读 2019-03-21 09:48:05
    --.png,即是你背景图片的地址,我是将之放在了html同一目录下--> <style> .xue{ background-image: url(你的图片的名称.png); background-repeat: repeat; } </style> </head> ...
  • 解决办法:设置img的vertical-align属性为"middle". 原因:首先,浏览器并没有所谓的"HTML 5 模式",而是只有三种:怪异模式(Quirks),几乎标准的模式(Limited Quirks)和标准模式(Standards...几乎标准模式中,如果标
  • Fresco图片加载框架的简单介绍

    千次阅读 2016-02-21 21:37:46
    通常使用focusCrop,该属性值会通过算法人头像放在中间 fresco:failureImage= "@drawable/error" // 加载失败的时候显示的图片 fresco:failureImageScaleType=“centerInside " // 设置图片缩放 fresco:...
  • 简单说下原理,显示图片的img标签和上传文件的 input标签放在同一个div下,input设置的大小和img的大小一样, 设置透明度为0,用定位和设置优先级input浮动在img上方,这样点击图片就能弹出文件选择,选择完...
  • Android 给图片加边框

    万次阅读 2012-02-17 10:36:53
    图片处理时,有时需要为图片加一些边框,下面介绍一种为图片添加简单边框的方法。 基本思路是:将边框图片裁剪成八张小图片(图片大小最好一致,不然后面处理会很麻烦),分别对应左上角,左边,左下角,下边,右下...
  • 在sharepoint开发中,我们有时候会用到一个叫富文本的控件InputFormTextBox,这个控件非常好用,只是有一个地方不太人性化,就是插入上传图片的时候,只能是插入一个图片地址,而没有选择本地图片的功能。...
  • editor.md显示编辑图片上传心得(非常详细)

    千次阅读 热门讨论 2019-11-13 14:35:12
    将下载好的editormd文件夹重命名为editormd,并放在网站的根目录下面,然后新建markdown.html文件,用作显示。 在markdown.html中输入以下内容用做显示编辑器,注意资源引用的路径哦,参考我的项目结构中引用的具体...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 178,034
精华内容 71,213
关键字:

怎么把图片放在框里

友情链接: DBCnn.rar