文档章节

ImageCreateTrueColor白色背景问题

亚伦卡特
 亚伦卡特
发布于 2016/12/09 10:07
字数 288
阅读 9
收藏 0
点赞 0
评论 0

昨天需要做一个功能,把上传的图片制作成指定尺寸的缩略图。 由于指定的尺寸是正方形,而上传图大多是长条形,所以不足的部分用白色背景填充。

想想其实简单,就是把上传图和白色背景合并,再调整下位置居中就好。

结果第一步就不行,imagecreatetruecolor()创建的画布,始终是黑色。

$thumb = imagecreatetruecolor($newwidth, $newheight);
imagecolorallocate($thumb, 255, 255, 255);

百度之后发现解决方案,是需要imagefill()这个方法来上色,

$thumb = imagecreatetruecolor($newwidth, $newheight);
$white = imagecolorallocate($thumb, 255, 255, 255);
imagefill($thumb, 0,0, $white);

这样就是白色背景了。

顺便把这个制作缩略图的代码也记录一下。

<?php
$filename = './Cordovan wallet.jpg';
//$filename = './book.jpg';

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

// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = 350;
$newheight = 350;
$w=0;//宽度偏移量
$h=0;//高度偏移量

if($width>$height){
	$percent = $newwidth/$width;
	
	$newwidth1 = $width * $percent;
	$newheight1 = $height * $percent;
	
	$h = ($newwidth1-$newheight1)/2;
}
else{
	$percent = $newheight/$height;
	
	$newwidth1 = $width * $percent;
	$newheight1 = $height * $percent;

	$w = ($newheight1-$newwidth1)/2;
}


// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);

$white = imagecolorallocate($thumb, 255, 255, 255);
imagefill($thumb, 0,0, $white);

$source = imagecreatefromjpeg($filename);

// Resize
imagecopyresized($thumb, $source, $w, $h, 0, 0, $newwidth1, $newheight1, $width, $height);

// Output
imagejpeg($thumb);
?>

© 著作权归作者所有

共有 人打赏支持
亚伦卡特
粉丝 0
博文 20
码字总数 1492
作品 0
松江
程序员
解决PHP剪切缩略图生成png,gif透明图时,黑色背景问题

  最近做头像上传用到剪切,只要GIF或者PNG是透明的话,剪切后都会变成黑色的背景图。   解决方案有2种:   1.背景图填充白色的背景。   $white = imagecolorallocate($dstim,255,25...

搽搽桌子
2016/07/06
40
0
PHP验证码程序

这个是程序部分,verifyCode.php

feng157aaa
2016/04/12
227
1
白夜追凶 :手 Q 图片的显示和发送逻辑

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:陈舜尧导语: “这张图片在快捷发图栏背景是黑色的,为啥发到AIO(会话窗口)里背景就变成白的了?” 通过一个bug单,对黑白...

腾讯云社区
2017/10/27
0
0
白夜追凶 :手 Q 图片的显示和发送逻辑

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:陈舜尧 导语: “这张图片在快捷发图栏背景是黑色的,为啥发到AIO(会话窗口)里背景就变成白的了?” 通过一个bug单,对黑...

腾讯云加社区
2017/10/27
0
0
android系统适配通知栏背景的一种方案

android系统适配通知栏背景的一种方案 现状: 目前android碎片化严重,很多厂商会针对android系统底层进行改造,通知栏也不例外,类似小米手机或者华为的一些手机,通知栏就不是原生android...

aqu-spring
2016/12/21
84
0
UIActivityIndicatorView在iphone4 Device上存在的问题

在开发中需要用UIActivityIndicatorView来显示网络情况, 在模拟器上运行一点问题没有,在iphone4上运行却出现问题:如果UIActivityIndicatorView的style是 UIActivityIndicatorViewStyleWh...

鉴客
2012/02/11
340
0
致APP图标设计师:不要再随便采用白色背景了

原文出处:Medium 译文出处:百略网 - The 308 我解锁了手机,发现我常用的一个APP昨晚已经自动更新了。然而让我无语凝噎的是,又是一个120×120像素的白色圆角矩形图标,中间稍微带了一丁点...

Medium
2015/11/23
0
0
UIActivityIndicatorView在iphone4 Device上存在的问题

在开发中需要用UIActivityIndicatorView来显示网络情况, 在模拟器上运行一点问题没有,在iphone4上运行却出现问题:如果UIActivityIndicatorView的style是UIActivityIndicatorViewStyleWhi...

长平狐
2012/08/13
28
0
含半透明像素的PNG如何转换ico格式文件

进入6月就一直忙,专栏的文章也迟迟未更新,这篇拖拖拉拉的1个月才写完。是实际工作中遇到的问题,总结下来,万一其他的UI设计师遇到了,就可以少走弯路。 ico文件是图标文件格式,UI设计师一...

泱泱
2017/07/06
0
0
解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题

之前项目中遇到打开Activity后黑屏的问题,网上找到解决办法是通过设置theme和style属性可以实现。 http://www.cnblogs.com/sunzn/p/3407078.html 之前在做 APP 的时候不太关注这个问题,因为...

ForingY
2016/10/17
22
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaEE——JavaScript

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 JavaScript 内置对象 String对象方法: date对象...

凯哥学堂
9分钟前
0
0
Git 远程代码回滚master

方式一(推荐): git revert commit-id 方式二(不推荐):不推荐原因:推送到线上后,其它开发人员需要重新clone git reset --hard commit-id git push origin HEAD --force...

浮躁的码农
9分钟前
0
0
Elasticesearch学习(7)—— ES查询与Java API的对应关系

1、普通查询 类型 ES查询语句 Java查询实现 结果 查询格式 { "query": { "bool": { "must": [], "must_not": [], "should": [], "filter": [] } }, "from": 0, "size": 10, "sort": [] } Que......

叶枫啦啦
9分钟前
4
0
getElementsByClassName()与getElementById()区别

1.document.getElementsByClassName() 返回的是数组 使用:document.getElementsByClassName("className")[0].innerText='具体内容' 2.document.getElementById() 返回的是单个元素 使用:d......

botkenni
20分钟前
0
0
MyBatis入门

一、安装 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version></dependency> 二、从 XML 中构建 SqlSessionFactory String r......

一个yuanbeth
21分钟前
0
0
聊聊spring cloud的LoadBalancerAutoConfiguration

序 本文主要研究一下spring cloud的LoadBalancerAutoConfiguration RibbonAutoConfiguration spring-cloud-netflix-ribbon-2.0.0.RC2-sources.jar!/org/springframework/cloud/netflix/ribb......

go4it
23分钟前
0
0
【转】使用Lombok来优雅的编码

前言 Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。 正文 添加依赖 在 pom.xml 文件中添加相关依赖:...

HAVENT
25分钟前
0
0
Dubbo 源码解读 —— 可支持序列化及自定义扩展

一、概述 从源码中,我们可以看出来。目前,Dubbo 内部提供了 5 种序列化的方式,分别为 fastjson、Hessian2、Kryo、fst 及 Java原生支持的方式 。 针对不同的序列化方式,对比内容如下: 名...

Ryan-瑞恩
33分钟前
0
0
MySQL内存设置—— MySQL server has gone away

set global max_allowed_packet=268435456

一梦心草
42分钟前
0
0
推导式

列表、集合和字典推导式 列表推导式是Python最受喜爱的特性之一。它允许用户方便的从一个集合过滤元素,形成列表,在传递参数的过程中还可以修改元素。形式如下: [expr for val in collect...

火力全開
48分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部