双屏 3840 * 1080 如何装逼?不同的屏幕显示不同的壁纸。php 定时脚本下载必应每日壁纸。

写在前面。大家都应该知道必应搜索每天都会换首页壁纸的吧?常用都知道。都知道图片是有版权的吧?没问题。个人自用还是可以的。
双屏 3840 * 1080 如何装逼?不同的屏幕显示不同的壁纸。

这时候你需要一张 3840 * 1080 的图片,图片在那里找呢?去图片站搜索下载?确实可以,但 3840 的资源比较少,看腻了还要再去下载,实在是太麻烦了。
其实自己合成就好,用 ps 吗?不想打开,难道每天都要打开-合成-关闭? on!我是程序员,电脑长这么大了,它要学会自己下载图片更换。

电脑环境已安装 php 并加入系统环境变量
win10 找到任务计划并创建定时计划执行脚本。我这里设置的是每天执行一次
双屏 3840 * 1080 如何装逼?不同的屏幕显示不同的壁纸。php 定时脚本下载必应每日壁纸。_第1张图片

bingimg.php

 

// header('Content-type: image/png');
$res = json_decode(file_get_contents('https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=10&pid=hp'), true);
if (!empty($res['images'])) {
	// krsort($res['images']);
	$save_path = iconv('UTF-8','GB2312', 'D:\\桌面文件\\pcbgimg\\bing\\');
	// $file_count = count(scandir($save_path));
	$font = __DIR__ . '/Alibaba-PuHuiTi-Regular.ttf';
	// foreach ($res['images'] as $key => $val) {
		$image = imagecreatefromjpeg('https://cn.bing.com' . $res['images'][0]['url']);
		$image2 = imagecreatefromjpeg('https://cn.bing.com' . $res['images'][1]['url']);
		$image_all = imagecreatetruecolor(3840, 1080);
		$white = imagecolorallocate($image_all, 255, 255, 255);
		imagecopyresampled($image_all, $image, 1920, 0, 0, 0, 1920, 1080, 1920, 1080);
		imagecopyresampled($image_all, $image2, 0, 0, 0, 0, 1920, 1080, 1920, 1080);
		imagettftext($image_all, 14, 0, 3840 - strlen($res['images'][0]['copyright']) * 8.5, 28, $white, $font, $res['images'][0]['copyright']);
		imagettftext($image_all, 14, 0, 1920 - strlen($res['images'][1]['copyright']) * 8.5, 28, $white, $font, $res['images'][1]['copyright']);
		imagejpeg($image_all, $save_path . $res['images'][1]['startdate'] . '-' . $res['images'][0]['startdate'] . '.jpeg');
		// imagejpeg($image_all);
		imagedestroy($image_all);

		// $file_count += 1;
	// }
}

把保存图片的文件夹设为背景幻灯片
双屏 3840 * 1080 如何装逼?不同的屏幕显示不同的壁纸。php 定时脚本下载必应每日壁纸。_第2张图片
什么?你觉得这个不够装? 希望是视频或动态图片?
双屏 3840 * 1080 如何装逼?不同的屏幕显示不同的壁纸。php 定时脚本下载必应每日壁纸。_第3张图片

完成啦,带上 javascript 合并方法

function drawAndShareImage(url, url2){
    let ctx = document.createElement('canvas').getContext('2d');
        ctx.canvas.width = 3840;
        ctx.canvas.height = 1080;

    let img = new Image();
        img.src = url;
        img.crossOrigin = 'Anonymous';

    img.onload = function(){
        ctx.drawImage(img, 0, 0);
       	let img2 = new Image();
        img2.src = url2;
        img2.crossOrigin = 'Anonymous';
        img2.onload = function(){
            ctx.drawImage(img2, 1920, 0);
			document.body.parentNode.replaceChild(ctx.canvas, document.body);
        }
    }
}

你可能感兴趣的:(PHP)