首先,您必须裁剪图像以适应明信片。

根据您的图像,您需要做的是:

$sourceImage = './postcard-template.jpg';

$uploadedImage = '/path/to/image/hong-kong2.jpg'; // let's get hong kong as example

$mime = '';

$font = '/path/to/font/arial.ttf';

function CroppedThumbnail($source, $width, $height, &$mime) {

$data = getimagesize($source);

$sourceWidth = $data[0];

$sourceHeight = $data[1];

$mime = $data['mime'];

$image = imagecreatefromjpeg($source);

$sourceRatio = $sourceWidth/$sourceHeight;

if (($width/$height) > $sourceRatio) {

$newHeight = $width/$sourceRatio;

$newWidth = $width;

}

else {

$newWidth = $height*$sourceRatio;

$newHeight = $height;

}

$croppedImage = imagecreatetruecolor(round($newWidth), round($newHeight));

imagecopyresampled($croppedImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $sourceWidth, $sourceHeight);

$thumb = imagecreatetruecolor($width, $height);

imagecopyresampled($thumb, $croppedImage, 0, 0, (($newWidth/2)-($width/2)), (($newHeight/2)-($height/2)), $width, $height, $width, $height);

imagedestroy($croppedImage);

imagedestroy($image);

return $thumb;

}

// Create the cropped image first

$newThumb = CroppedThumbnail($uploadedImage,240,315, $mime);

switch($mime) {

case 'image/gif':

$image = imagecreatefromgif($sourceImage);

break;

case 'image/jpeg':

$image = imagecreatefromjpeg($sourceImage);

break;

case 'image/png':

$image = imagecreatefrompng($sourceImage);

break;

default:

// error or stop script

break;

}

$message = "this is some text\nsome other text\ntext text";

imagettftext($image, 21, 0, 320, 255, imagecolorallocate($image, 0, 0, 0), $font, $message);

imagecopy($image, $newThumb, 40, 40, 0, 0, 240, 315);

header('Content-Type: image/jpeg');

imagejpeg($image);

imagedestroy($image);

例如我使用这个图像(需要裁剪):

那么它将输出:

php程序定制,PHP定制明信片相关推荐

  1. 成都微信小程序电商定制报价

    成都微信小程序电商定制报价,市场容易开发吗?怎么购买呢? 第一,原创开发: 我们假设我们要开发一个电商购物小程序,用户注册,产品展示,购物车,购买,付款,售后,这是一个典型的电子商务需求,这个需求在市 ...

  2. 微信小程序购物商城定制开发

    微信小程序购物商城系统(陈琦:138-2848-7919可微)微信小程序购物商城开发,微信小程序购物商城定制,微信小程序购物商城模式,微信小程序购物商城APP,微信小程序购物商城平台. 定制开发微信小 ...

  3. android 深度定制,深度定制安卓是什么

    深度定制安卓系统是指以android源码为基础,以产品特性为目的而进行深度改造的系统.市面上最常见的深度定制系统是中国移动OPhone所采用的OMS系统.深度定制不只是对UI进行的重新设计,还会围绕硬 ...

  4. powermill程序单html模板,3-PowerMill程序单模板定制.pdf

    PowerMill 程序单的模板定制 PowerMill 提供两种方法输出NC 加工程序单:右键菜单 "PowerMILLUtilities "和 NC 程序"设置清单& ...

  5. 【智慧农业】农业众筹app,共享农场土地租赁,果树家禽认养小程序,智慧农业小程序源码定制开发和二次开发哪个更合适呢?

    智慧农业小程序是一款网上认领土地,果树,家禽,农场商城,农场直播对接等为一体的现代农业小程序 智慧农业小程序定制开发和二次开发选择哪个更合适呢? 定制开发,顾客可以提出自己的需求,让软件公司专门量身定 ...

  6. 律师所小程序开发 律师小程序开发定制 律所小程序源码定制

    律师所平台APP开发-定制,律师平台,律所系统开发,律师所APP开发,律所系统平台定制,律所平台源码制作,律师所网站开发,律所系统定制 如今,法律咨询成为了我们生活中离不开的服务.如一些纠纷.劳动人事 ...

  7. Android程序 地图,在定制的Android应用程序中使用谷歌地图

    我收到以下问题(显示在LogCat中).我希望any1可以帮助我,因为我是android应用程序开发的新手.在定制的Android应用程序中使用谷歌地图 11-17 16:50:38.087: E/A ...

  8. 社交购物小程序开发 社交电商小程序源码定制 社交购物系统搭建

    社交购物平台APP开发-定制,社交购物平台,社交购物系统开发,社交购物APP开发,社交购物系统平台源码定制,社交购物平台源码开发,社交购物平台制作,社交购物网站开发 拼多多.有赞的上市将社交电商推向了 ...

  9. 在 Flutter 应用程序中通过定制服务进行本地化

    前言 猫哥在项目中也是有这个困惑,如何管理 多语言,如果常量定义方式,还是有点不优雅. 这篇文章的作者就提出了个不错的建议,服务端编辑,本地文件缓存同步. 就是读取数据库啦,后端弄个界面维护维护数据, ...

最新文章

  1. win7系统升服务器版本,WIN7专业版可update补丁,WIN7旗舰版无法update补丁,WSUS服务器是按windows类型还是版本区别updata的还是其他什么方式...
  2. jQuery 插件 Validation表单验证 使用步骤(详细的)
  3. Opportunity Sales org F4 value help data source
  4. 第九大陆服务器未找到文件,第九大陆服务器优化规则说明 拍卖行和寄售功能关闭公告...
  5. html如何添加文档,如何在HTML中添加行
  6. 大数据分析实战-信用卡欺诈检测(三)- 模型评估
  7. PHP 判断点是否在多边形内
  8. python for循环练习
  9. 网络调试助手(NetAssist)java socket通讯代码
  10. 前台CSS颜色代码大全
  11. 谷歌新政策的搜索字词紧密变体怎么应对?
  12. 亲手将TP-LINK路由器改装成交换机使用
  13. 东南大学计算机程光,东南大学计算机科学与工程学院硕导介绍:程光
  14. ST官方的IIC实例解析(第一部分)
  15. 用jsp的mvc模式的新闻发布系统_网易内部倡导用昵称代替哥姐总等称呼;TCL大股东误操作卖出500万股;Ant Design 4.6.2 发布| 极客头条...
  16. HDU 3636-Dragon Balls
  17. 为什么产品经理要做市场调研
  18. vue中实现打印功能的方法与注意事项
  19. 电动车防盗报警器语音提示芯片,PWM功放音频ic选型——NVC
  20. win7计算机c盘搜索不到,win7系统C盘搜索不到system32文件夹的解决方法

热门文章

  1. ceph 部署mds文件系统
  2. 你可能会延迟退休??一想到65岁还在公司摸鱼,我笑得想死…
  3. shader入门1 了解表面着色器
  4. 微软公司等数据结构 算法面试100题 第1 100题 全部出炉
  5. 乐蒙网:IE 浏览器进入死亡倒计时,Microsoft Edge 能否接过大旗?
  6. 蚁群算法(Ant System)(AS)
  7. URL编码和解码 C++类URL编码和解码使用技巧
  8. java 6种 日期格式使用
  9. TT语音线程优化,移动应用开发平台
  10. Arrays.asList() 详解