php怎么新建图片,Canvas调用手机拍照功能实现图片上传上?
HTML5技术支持WebApp在手机上拍照,显示在页面上并上传到服务器。这是手机微博应用中常见的功能,当然你也可以在其它类型应用中适当使用此技术。
1、 拍照 拍照是采用HTML5的Canvas功能,实时捕获Video标签的内容,因为Video元素可以作为Canvas图像的输入,所以这一点很好实现。主要代码如下:var canvas=document.createElement(‘canvas’); //动态创建画布对象var ctx=canvas.getContext(’2d’);var cw=vw,ch=vh;ctx.fillStyle=”#ffffff”;ctx.fillRect(0,0,cw,ch);ctx.drawImage(video_element,0,0,cw,ch,0,0,vw,vh); //将video对象内指定的区域捕捉绘制到画布上指定的区域,可进行不等大不等位的绘制。document.body.append(canvas);
2、 图片获取 从Canvas获取图片数据的核心思路是用canvas的toDataURL将Canvas的数据转换为base64位编码的png图像,类似于“data:image/png;base64,xxxxx”的格式。var imgData=canvas.toDataURL(“image/png”);这样,imgData变量就存储了一长串的字符数据内容,表示的就是一个PNG图像的base64编码。因为真正的图像数据是base64编码逗号之后的部分,所以要让实际服务器接收的图像数据应该是这部分,方法是在前端截取22位以后的字符串作为图像数据,例如:var data=imgData.substr(22);如果要在上传前获取图片的大小,可以使用:var length=atob(data).length; //atob 可解码用base-64解码的字串
3、 图片上传 在前端可以使用Ajax将上面获得的图片数据上传到后台脚本。例如使用jQuery时可以用:$.post(‘upload.php’,{‘data’:data});在后台用PHP脚本接收数据并存储为图片。function convert_data($data){ $image=base64_decode(str_replace(‘data:image/jpeg;base64,’,”,$data); save_to_file($image);}function save_to_file($image){ $fp=fopen($filename,’w'); fwrite($fp,$image); fclose($fp);
wordpress怎样搭建网站?
想要搭建个人网站,就需要有单独的服务器,就在阿里云购买了台服务器,选择系统为“Ubuntu 14.04.5 LTS”,并在阿里云买了个域名(域名是为了方便记忆,否则输入ip地址访问网站很不方便),下面就使用Ubuntu系统搭建WordPress个人网站。
安装WordPress运行环境
1.安装Mysql数据库
apt update
apt upgrade
apt install mysql-server
查看mysql是否安装成功:
root@iZ2zeeg42qkecbhciml4pcZ:~# mysql --version
mysql Ver 14.14 Distrib 5.5.62, for debian-linux-gnu (x86_64) using readline 6.3
2.安装PHP
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.2
apt install libapache2-mod-php7.2
apt install php7.2-mysql
apt install php7.2-fpm
查看php是否安装成功:
root@iZ2zeeg42qkecbhciml4pcZ:~# php -v
PHP 7.2.16-1+ubuntu14.04.1+deb.sury.org+1 (cli) (built: Mar 7 2019 20:42:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.16-1+ubuntu14.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
3.安装Nginx
install nginx
查看Nginx是否安装成功:
root@iZ2zeeg42qkecbhciml4pcZ:~# nginx -v
nginx version: nginx/1.4.6 (Ubuntu)
重启Nginx后,在浏览器中输入http://阿里云服务器外网IP地址/
service nginx stop
service nginx start
如果图片显示为下图,说明阿里云服务器自动启动了apache2的服务,apache2和nginx都使用80端口,80端口冲突。
关闭apache2的服务
重启php7.2-fpm服务和Nginx服务:
在浏览器中输入http://阿里云服务器外网IP地址/
安装WordPress及其配置
1.Mysql创建数据库和用户:
root@iZ2zeeg42qkecbhciml4pcZ:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.5.62-0ubuntu0.14.04.1 (Ubuntu)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database 数据库名称 character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on 数据库名称.* to '用户名'@localhost identified by '用户密码';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
root@iZ2zeeg42qkecbhciml4pcZ:~#
2.下载WordPress并安装:
获取WordPress软件:点击此处
将下载的wordpress-5.0.3-
zh_CN.tar.gz
上传到云服务器上安装wordPress:
root@iZ2zeeg42qkecbhciml4pcZ:~# ls
wordpress-5.0.3-zh_CN.tar.gz
root@iZ2zeeg42qkecbhciml4pcZ:~# mv wordpress-5.0.3-zh_CN.tar.gz /var/www/
root@iZ2zeeg42qkecbhciml4pcZ:~# cd /var/www/
root@iZ2zeeg42qkecbhciml4pcZ:/var/www# ls
html wordpress-5.0.3-zh_CN.tar.gz
root@iZ2zeeg42qkecbhciml4pcZ:/var/www# tar -zxvf wordpress-5.0.3-zh_CN.tar.gz
......
root@iZ2zeeg42qkecbhciml4pcZ:/var/www# ls
html wordpress wordpress-5.0.3-zh_CN.tar.gz
root@iZ2zeeg42qkecbhciml4pcZ:/var/www# cd wordpress/
root@iZ2zeeg42qkecbhciml4pcZ:/var/www/wordpress# ls
index.php readme.html wp-admin wp-comments-post.php wp-content wp-includes wp-load.php wp-
mail.php
wp-signup.php xmlrpc.phplicense.txt
wp-activate.php wp-blog-header.php wp-config-sample.php wp-cron.php wp-links-opml.php wp-login.php wp-settings.php wp-trackback.phproot@iZ2zeeg42qkecbhciml4pcZ:/var/www/wordpress# mv wp-config-sample.php wp-
config.php
使用vim命令编辑wp-config.php:
vim wp-config.php
修改文件中的数据库配置信息,填写刚才创建的数据库信息:
/** WordPress数据库的名称 */
define('DB_NAME', '数据库名称');
/** MySQL数据库用户名 */
define('DB_USER', '用户名');
/** MySQL数据库密码 */
define('DB_PASSWORD', '数据库密码');
/**
* WordPress数据表前缀。
*
* 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置
* 不同的数据表前缀。前缀名只能为数字、字母加下划线。
*/
$table_prefix = 'wp_';
在阿里云控制台将域名解析到指定的服务器上:
控制台->域名->解析->添加纪录
配置服务安全组策略,将80(http)端口和443(https)端口开放:
控制台->云服务器ECS->网络和安全->安全组->配置规则
配置80端口:
配置443端口:
配置后查看内容:
编辑Nginx配置文件:/etc/nginx/sites-available/default
client_max_body_size 10m;
server {
listen 80;
listen [::]:80;
server_name localhost; #你的域名
root /var/www/wordpress;
index index.php index.html index.htm index.nginx-debian.html;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
# include fastcgi.conf;
include fastcgi_params;
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
#fastcgi_intercept_errors on;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# With php-cgi (or other tcp sockets):
#fastcgi_pass 127.0.0.1:9000;
}
}
重启Nginx后,在浏览器中输入http://阿里云服务器外网IP地址/
service nginx stop
service nginx start
在浏览器中访问自己的域名,查看是否成功:
到此WordPress就安装成功了,你可以自行配制您的网站信息。
如何使用命令行直接在终端打印图片?
需求很简单,就是在linux的终端中输入一个字符串(可以是以命令行参数形式,也可以是通过交互式输入),然后就会输出对应的二维码。首先PHP已经有现成的QrCode类库phpqrcode,可以将一个字符串转成PNG格式的图片,但是PNG图片是没法在终端里展示的,于是仔细翻看文档和demo,发现该类库也可以输出0和1组成的矩阵(实际上该方法返回的是一个PHP的二维数组)。已经有了0和1的矩阵,接下来要做的就是输出黑白色块,为了操作方便,我引入了symfony项目中的console组件。通过console组件可以非常方便的创建一个Cli命令,而且内置了大量输入和输出方法。
怎样实现前端裁剪上传图片功能?
这需要用到插件,不用的需要不同的插件。jsp,asp,php都不同。百度搜一下。
如何用PHP给图片添加水印?
使用PHP给图片加水印需要使用PHP的图片处理函数,如getimagesize、image_type_to_extension、imagecreatefrompng、imagecolorallocatealpha、imagettftext、imagecreatefromstring、imagecopymerge、imagedestroy等。
通常需要按如下步骤操作:
上传图片获取图片信息制作水印将水印和上传的图片拼接在一起生成新的图片下面就生成文字水印和图片水印分别说明:
文字水印图片水印