7月

二胎

最近发生的事情确实太多了,一直都没有详细的写下来,硕子不小心怀上了二胎。原因是因为要等着618买避孕套,所以就怀上了,这是完全没有想到的。

Advertisements

16素材

今天入手了16素材的终身vip,依旧是爬虫爬完所有的下载链接,因为有vip限制,就是连下载页面都进不去,还好简单的使用了cookie就登陆进去了。

下载了几个psd素材之后,我才知道噩梦开始了。

等于我需要把jpg图片全部删除,然后从psd里面导出。一个psd一百多兆,打开一个psd要等半天,等就算了,发现里面的图层全部都默认不显示,并且每个图层的命名都是16素材加网址。

我当时就觉得这要请多少员工才能完成这么大的工作量。后来想到会不会ps有自动处理。网上百度了半天,确实有这个功能,但是我还是觉得慢。

后面我才想到会不会是用python完成的,百度果真有这个库。并且能和ps直接操作一样,达到所需要的效果。

顿时觉得太幸福了,用python写了自动处理脚本,解决了所有psd的问题。

  • 打开psd慢
  • 图层需要全部重命名
  • psd导出高清jpg

唯一还有一个没有解决的就是psd图层如果是隐藏状态,需要显示出来。

以后就全面扑到矢量素材上去了,依旧问题多,只能用ai的批量处理来解决,速度特别慢。没有发现python对ai的库。

即使ai转了eps,但是eps导出jpg也有问题,锯齿多的不忍直视。

python自动将eps导出jpg图片

这个功能倒是比较多余的,做出来纯属好玩。

import os
from PIL import Image

while True:
    base_path = 'E:/小当素材铺/素材源文件/1000-2000/'
    wenjianjia = input('输入文件夹名:')
    all_path = base_path+wenjianjia
    all_eps = os.listdir(all_path)
    for i in all_eps:
        eps = all_path+'/'+i
        if eps.endswith('.eps'):
            print(eps)
            fname, ext = os.path.splitext(eps)
            img = Image.open(eps)
            img.load(scale=3)
            img.save(fname+'.jpg',quality=100)

python自动批量缩小图片

上一篇文章讲到了淘宝首图自动生成,在硕子的工作流程中还有一个需要处理的事情,那就是缩小图片,因为在淘宝后台上传图片,如果图片大小大于3mb,就会上传失败。

偏偏这些素材的展示图片,都特别的大,特别是样机素材,动不动就超过了3mb,这样就需要批量缩小图片了,虽然有很多缩小图片的软件。但是,这些永远都没有自己用python写一个来的方便。

自动缩小文件夹下面的所有图片为750px,并且给图片下面添加一个20px的白边,白边的意义就是在传到淘宝详情里面会有一个间距,这样好看一点。

import os
from PIL import Image,ImageEnhance

while True:
    path = 'E:/小当素材铺/素材源文件/1000-2000/'
    wenjianjia = input('输入需要处理的文件夹名:')
    all_path = path + wenjianjia
    all_file = os.listdir(all_path)
    for i in all_file:
        one_file = all_path + '/' + i

        if one_file.endswith('.txt') or one_file.endswith('.zip'):
            print('删除文件:'+ one_file)
            os.remove(one_file)
        
        if one_file.endswith('.jpg'):
            print('缩放图片:'+ one_file)
            im = Image.open(one_file)
            w,h = im.size
            img_h = int(h)/(int(w)/750)
            im.thumbnail((750,int(img_h)))
            image = Image.new('RGB',(750,int(img_h)+20),(255,255,255))
            image.paste(im,(0,0))
            image.save(one_file,'jpeg',quality=90)

淘宝首图自动生成系统

在硕子的整个工作流程中,淘宝首图的生成,是最麻烦的。所以今天上午首先就解决了淘宝首图生成的办法,是直接用的php gd库,虽然速度很慢,但是做出来的效果居然是和ps一模一样的,更重要的是。tmd比自己用ps做速度还是要快10倍以上啊。

淘宝首图自动生成

上传图片,选择素材类型,然后打上首图标题。一个简单强大的首图就自动生成出来了,自己都没有想到居然这么没有难度。因为在ps上面拼接这些首图,真的太麻烦了。现在用php自动处理,就在这个首图上的速度就快了10倍以上。

图片裁剪直接使用了timthumb.php文件裁剪,本来是可以使用gd库进行裁剪的,但是没有那个闲心了,有现成的就不想自己做了。也不知道是否使用gd库裁剪会不会速度更快一点。全部用这个生成出来的首图也是相当的漂亮。

自动生成系统
<?php
error_reporting(0);
if ($_FILES) {
    // 清空文件夹
    $path = 'img/';
    foreach (scandir($path) as $val) {
        if ($val != '.' && $val != '..') {
            unlink($path . $val);
        }
    }

    // 上传图片
    $num = 1;
    foreach ($_FILES['file']['tmp_name'] as $f) {
        move_uploaded_file($f, $path . $num . '.jpg');
        $num++;
    }

    $bg_img = 'http://127.0.0.1/img_pj/bg_' . $_POST['lx'] . '.jpg';

    $bg_w = 800;
    $bg_h = 800;

    // 拼接图片 4宫格
    $background = imagecreatetruecolor($bg_w, $bg_h);
    imagecopyresampled($background, imagecreatefromjpeg($bg_img), 0, 0, 0, 0, 800, 800, 800, 800);

    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/1.jpg&w=397&h=312&q=100&sz=1&s=1'), 0, 0, 0, 0, 397, 312, 397, 312);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/2.jpg&w=397&h=312&q=100&sz=1&s=1'), 403, 0, 0, 0, 397, 312, 397, 312);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/3.jpg&w=397&h=312&q=100&sz=1&s=1'), 0, 318, 0, 0, 397, 312, 397, 312);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/4.jpg&w=397&h=312&q=100&sz=1&s=1'), 403, 318, 0, 0, 397, 312, 397, 312);

    $white = imagecolorallocate($background, 255, 255, 255);
    imagettftext($background, 48, 0, 157, 720, $white, 'D:\xampp\htdocs\img_pj\SourceHanSansCN-Heavy.otf', $_POST['bt']);

    imagejpeg($background, 'C:\Users\wu\Desktop\x-4.jpg', 90);
    imagejpeg($background, 'img\x-4.jpg', 90);
    imagedestroy($background);

    // 拼接图片 9宫格
    $background = imagecreatetruecolor($bg_w, $bg_h);
    imagecopyresampled($background, imagecreatefromjpeg($bg_img), 0, 0, 0, 0, 800, 800, 800, 800);

    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/1.jpg&w=262&h=206&q=100&sz=1&s=1'), 0, 0, 0, 0, 262, 206, 262, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/2.jpg&w=262&h=206&q=100&sz=1&s=1'), 268, 0, 0, 0, 262, 206, 262, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/3.jpg&w=262&h=206&q=100&sz=1&s=1'), 538, 0, 0, 0, 262, 206, 262, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/4.jpg&w=262&h=206&q=100&sz=1&s=1'), 0, 212, 0, 0, 262, 206, 262, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/5.jpg&w=262&h=206&q=100&sz=1&s=1'), 268, 212, 0, 0, 262, 206, 262, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/6.jpg&w=262&h=206&q=100&sz=1&s=1'), 538, 212, 0, 0, 262, 206, 262, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/7.jpg&w=262&h=206&q=100&sz=1&s=1'), 0, 424, 0, 0, 262, 206, 262, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/8.jpg&w=262&h=206&q=100&sz=1&s=1'), 268, 424, 0, 0, 262, 206, 262, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/9.jpg&w=262&h=206&q=100&sz=1&s=1'), 538, 424, 0, 0, 262, 206, 262, 206);

    $white = imagecolorallocate($background, 255, 255, 255);
    imagettftext($background, 48, 0, 157, 720, $white, 'D:\xampp\htdocs\img_pj\SourceHanSansCN-Heavy.otf', $_POST['bt']);

    imagejpeg($background, 'img/x-9.jpg', 90);
    imagejpeg($background, 'C:\Users\wu\Desktop\x-9.jpg', 90);
    imagedestroy($background);

    // 拼接图片 横6
    $background = imagecreatetruecolor($bg_w, $bg_h);
    imagecopyresampled($background, imagecreatefromjpeg($bg_img), 0, 0, 0, 0, 800, 800, 800, 800);

    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/1.jpg&w=397&h=206&q=100&sz=1&s=1'), 0, 0, 0, 0, 397, 206, 397, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/2.jpg&w=397&h=206&q=100&sz=1&s=1'), 403, 0, 0, 0, 397, 206, 397, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/3.jpg&w=397&h=206&q=100&sz=1&s=1'), 0, 212, 0, 0, 397, 206, 397, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/4.jpg&w=397&h=206&q=100&sz=1&s=1'), 403, 212, 0, 0, 397, 206, 397, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/5.jpg&w=397&h=206&q=100&sz=1&s=1'), 0, 424, 0, 0, 397, 206, 397, 206);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/6.jpg&w=397&h=206&q=100&sz=1&s=1'), 403, 424, 0, 0, 397, 206, 397, 206);

    $white = imagecolorallocate($background, 255, 255, 255);
    imagettftext($background, 48, 0, 157, 720, $white, 'D:\xampp\htdocs\img_pj\SourceHanSansCN-Heavy.otf', $_POST['bt']);

    imagejpeg($background, 'img/h-6.jpg', 90);
    imagejpeg($background, 'C:\Users\wu\Desktop\h-6.jpg', 90);
    imagedestroy($background);

    // 拼接图片 竖6
    $background = imagecreatetruecolor($bg_w, $bg_h);
    imagecopyresampled($background, imagecreatefromjpeg($bg_img), 0, 0, 0, 0, 800, 800, 800, 800);

    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/1.jpg&w=262&h=312&q=100&sz=1&s=1'), 0, 0, 0, 0, 262, 312, 262, 312);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/2.jpg&w=262&h=312&q=100&sz=1&s=1'), 268, 0, 0, 0, 262, 312, 262, 312);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/3.jpg&w=262&h=312&q=100&sz=1&s=1'), 538, 0, 0, 0, 262, 312, 262, 312);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/4.jpg&w=262&h=312&q=100&sz=1&s=1'), 0, 316, 0, 0, 262, 312, 262, 312);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/5.jpg&w=262&h=312&q=100&sz=1&s=1'), 268, 316, 0, 0, 262, 312, 262, 312);
    imagecopyresampled($background, imagecreatefromjpeg('http://127.0.0.1/img_pj/timthumb.php?src=http://127.0.0.1/img_pj/img/6.jpg&w=262&h=312&q=100&sz=1&s=1'), 538, 316, 0, 0, 262, 312, 262, 312);

    $white = imagecolorallocate($background, 255, 255, 255);
    imagettftext($background, 48, 0, 157, 720, $white, 'D:\xampp\htdocs\img_pj\SourceHanSansCN-Heavy.otf', $_POST['bt']);

    imagejpeg($background, 'img/s-6.jpg', 90);
    imagejpeg($background, 'C:\Users\wu\Desktop\s-6.jpg', 90);
    imagedestroy($background);
}
?>

<!DOCTYPE html>
<html lang="zh_cn">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta http-equiv="Expires" content="0">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Cache-control" content="no-cache">
    <meta http-equiv="Cache" content="no-cache">
    <title>图片拼接</title>
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
    <style>
        img {
            max-width: 100%;
        }
    </style>
</head>

<body>
    <div class="container">

        <div class="header border-bottom py-3">
            <div class="font-weight-bold h4">图片处理系统</div>
        </div>

        <div class="up py-4 border-bottom">
            <form action="" method="post" enctype="multipart/form-data">
                <div class="form-group">
                    <label>选择图片</label>
                    <input type="file" name="file[]" id="pic" multiple="" accept="image/jpeg" />
                </div>
                <div class="form-group">
                    <label>文件类型</label>
                    <div class="form-check">
                        <input class="form-check-input" type="radio" name="lx" id="exampleRadios1" value="ai" checked>
                        <label class="form-check-label">
                            AI 文件
                        </label>
                    </div>
                    <div class="form-check">
                        <input class="form-check-input" type="radio" name="lx" id="exampleRadios2" value="psd">
                        <label class="form-check-label">
                            PSD 文件
                        </label>
                    </div>
                </div>
                <div class="form-group">
                    <label>标题</label>
                    <input type="text" id="bt" name="bt" class="form-control form-control-lg" />
                    <div class="alert alert-info mt-2 small" role="alert">
                        xx套 (*******)括号内不能超过7个字
                    </div>
                </div>
                <input type="submit" name="submit" class="btn btn-primary" value="提交自动生成" />
            </form>
        </div>

        <?php if ($_FILES) : ?>
            <div class="zhanshi py-3">
                <div class="row">
                    <div class="col-3">
                        <h2>X-4</h2>
                        <img src='img/x-4.jpg' />
                    </div>
                    <div class="col-3">
                        <h2>X-9</h2>
                        <img src='img/x-9.jpg' />
                    </div>
                    <div class="col-3">
                        <h2>H-6</h2>
                        <img src='img/h-6.jpg' />
                    </div>
                    <div class="col-3">
                        <h2>S-6</h2>
                        <img src='img/s-6.jpg' />
                    </div>
                </div>
            </div>
        <?php endif; ?>

    </div>
</body>

</html>

python爬虫获取网站所有下载链接

from requests_html import HTMLSession
import os
from tomorrow3 import threads

def htmldown(url):
    html = HTMLSession().get(url).html
    return html

# 构建列表页
def liebiao():
    pagenumber = 2
    page_list = ['https://www.pixeden.com/free-graphics']
    while(pagenumber<=36):
        url = 'https://www.pixeden.com/free-graphics/Page-'+str(pagenumber)
        page_list.append(url)
        pagenumber+=1
    return page_list

# 从列表页中获取单页链接,然后从单页中获取下载链接
@threads(10)
def liebiao_to_downlink(url):
    html = htmldown(url)
    singe_link = html.find('.boxgrid span.catItemImage a')
    for i in singe_link:
        url = 'https://www.pixeden.com/' + str(i.attrs['href'])
        html = htmldown(url)
        down_link = html.find('#download a.big_download')[0]
        url = 'https://www.pixeden.com'+str(down_link.attrs['href'])
        print(url)
        
        path = os.path.abspath('.')
        with open(path+'/url.txt','a+') as f:
            f.write(url+'\n')

for i in liebiao():
    liebiao_to_downlink(i)

因为需要从这个网站下载所有的素材,于是用python获取所有的zip文件下载链接,然后在fdm或者迅雷里面直接批量下载。

想不到一个网站上百个素材文件,几秒钟就爬完了,丢到fdm里面批量也相当快,有时候智商在线就是不一样。