zoukankan      html  css  js  c++  java
  • 打开网络图片并展示

    好玩

    今天同事问我一个问题,关于nginx location 的问题,在项目现场没有搞出来,又累又饿又冷又烦躁,心想这特么的问题出在哪呢,关于location的定位之前了解过,长时间不用于是忘了.真失望.后来大家都走了,本来没想背电脑回来,于是,背回来吧,搞他一搞.

    坐公交车,拿出手机,在公众号看了几篇文章,顿时知道问题出在哪里.回来拎出电脑,修修改改.

    虽然知道原因,但是语法不太熟悉,于是打开电脑搜了下,于是是这样的:

    刚开始没注意,直接按照语法修改配置文件,重启服务.好了搞定.

    然而回头仔细一看,嗯?? 博客主,你好骚啊,这个图片我必须down 下来,于是,出现如下:

    尼玛,图片呢,图片呢,好吧,继续往下拉,出现如图所示:

    老哥,你的girl来自哪里啊?????? 本来想玩一会休息,一看这样,算了,非给你找出来.
    仔细看看,你瞧,这个东西比较特别,拉出来访问,看:

    呵呵呵呵.........

    但是图片变了啊,竟然是特么随机的,怎么办,继续看,看这里:

    可以啊,藏的这么深,一激动,我去,又特么刷新了,原图不见了.不过,好歹知道怎么搞了,直接 copy image url 地址栏打开就好了.

    注意:其实第一次访问获得图片并不是这里列出的,至于是哪一个,因为是随机的所以最后我也没有再次看到她,真失望. 于是搜索一下,等闲了用py蛇on搞他几万下.

    其实怀疑,有人为了看图把他的博客刷了无数边,好心机,佩服.

    **想访问的,点这个吧,https://api.ooopn.com/image/beauty/api.php?type=jump **

    歌曲心血来潮

    未实施,有空再搞

    # -*- coding:utf-8 -*-
    ''' tk_image_view_url_io_resize.py
    display an image from a URL using Tkinter, PIL and data_stream
    also resize the web image to fit a certain size display widget
    retaining its aspect ratio
    Pil facilitates resizing and allows file formats other then gif
    tested with Python27 and Python33 by vegaseat 18mar2013
    '''
    ''' tk_image_view_url_io_resize.py
    用Tkinter, PIL和data_stream从一个url地址加载图片,
    能保持比例缩放适应显示大小, Pil便于缩放和读取各种图像格式,
    在Python27和Python33上都测试过了 by vegaseat 18mar2013
    '''
     
    import io
    from PIL import Image, ImageTk
    try:
      # Python2
      import Tkinter as tk
      from urllib2 import urlopen
    except ImportError:
      # Python3
      import tkinter as tk
      from urllib.request import urlopen
    def resize(w, h, w_box, h_box, pil_image):
      '''
      resize a pil_image object so it will fit into
      a box of size w_box times h_box, but retain aspect ratio
      对一个pil_image对象进行缩放,让它在一个矩形框内,还能保持比例
      '''
      
      
      f1 = 1.0*w_box/w # 1.0 forces float division in Python2
      f2 = 1.0*h_box/h
      factor = min([f1, f2])
      #print(f1, f2, factor) # test
      # use best down-sizing filter
      width = int(w*factor)
      height = int(h*factor)
      return pil_image.resize((width, height), Image.ANTIALIAS)
     
    root = tk.Tk()
    # size of image display box you want
    #期望图像显示的大小
    w_box = 400
    h_box = 400
    # find yourself a picture on an internet web page you like
    # (right click on the picture, under properties copy the address)
    # a larger (1600 x 1200) picture from the internet
    # url name is long, so split it
    #从网页上找到一个图片,复制它的网址,这里网址太长,所以分开了
    url1 = "http://freeflowerpictures.net/image/flowers/petunia/"
    url2 = "petunia-flower.jpg"
    url = url1 + url2
    image_bytes = urlopen(url).read()
    # internal data file
    data_stream = io.BytesIO(image_bytes)
     
    # open as a PIL image object
    #以一个PIL图像对象打开
    pil_image = Image.open(data_stream)
     
    # get the size of the image
    #获取图像的原始大小
    w, h = pil_image.size
     
    # resize the image so it retains its aspect ration
    # but fits into the specified display box
    #缩放图像让它保持比例,同时限制在一个矩形框范围内
    pil_image_resized = resize(w, h, w_box, h_box, pil_image)
     
    # optionally show resized image info ...
    # get the size of the resized image
    # 也可以显示缩放后的图像信息,获取大小
    wr, hr = pil_image_resized.size
     
    # split off image file name
    # 标题栏显示:缩放后的图像文件名和大小
    fname = url.split('/')[-1]
    sf = "resized {} ({}x{})".format(fname, wr, hr)
    root.title(sf)
     
    # convert PIL image object to Tkinter PhotoImage object
    # 把PIL图像对象转变为Tkinter的PhotoImage对象
    tk_image = ImageTk.PhotoImage(pil_image_resized)
     
    # put the image on a widget the size of the specified display box
    # Label: 这个小工具,就是个显示框,小窗口,把图像大小显示到指定的显示框 
    label = tk.Label(root, image=tk_image, width=w_box, height=h_box)
    #padx,pady是图像与窗口边缘的距离 
    label.pack(padx=5, pady=5)
    root.mainloop()
    
    
    
    

    拜拜,晚安.

  • 相关阅读:
    jmeter之三种参数化
    linux(centos6.5)常用命令
    win10+jdk+mysql+tomcat+jpress环境搭建与部署
    [剑指Offer] 29.最小的K个数
    [C/C++] C++中new的语法规则
    [C/C++] 深拷贝和浅拷贝
    [C/C++] #ifdef和#endif
    [C/C++] C++声明和定义的区别
    [C/C++] extern关键字详解以及与static、const区别
    [C/C++] static在C和C++中的用法和区别
  • 原文地址:https://www.cnblogs.com/g2thend/p/12158835.html
Copyright © 2011-2022 走看看