需要发散思维学习PHP

我觉得在学习的过程中,大家要知道“玩”,制造点成就感,那样的话 学习的效果和热情就会很高涨,
就会更喜欢自己学习的东西!
举例说明:
今天学习PHP的图像函数部分,学习了几个函数,他们分别是:
getimagesize()
array getimagesize ( string $filename [, array &$imageinfo ] )
getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 IMG 标记中的 height/width 文本字符串。
imagecreatefromgif()
resource imagecreatefromgif ( string $filename )
imagecreatefromgif() 返回一图像标识符,代表了从给定的文件名取得的图像。
意思就是以后为了方便使用这个图片资源,这个函数返回一个操作的句柄。
类似的函数还有imagecreatefromjpeg(),imagecreatefrompng() 当然还有很多,大家可以看官方在线手册
imagecolorat()
int imagecolorat ( resource $image , int $x , int $y )
返回 image 所指定的图形中指定位置像素的颜色索引值。
imagecolorsforindex()
array imagecolorsforindex ( resource $image , int $index )
本函数返回一个具有 red,green,blue 和 alpha 的键名的关联数组,包含了指定颜色索引的相应的值。
大家看了一段生硬的介绍,估计困了,不过请坚持一下!
那么学了这几个函数后,怎么练习一下呢?
其实我学到这几个函数,就立即想到了一个很好玩的东西可以做!
是什么?你猜猜~!!!!
看代码:
<?php
$url = "logo-yy.gif";
$size = getimagesize($url);
$width = $size[0];
$height = $size[1];
$im = imagecreatefromgif($url);

for($y=1;$y<$height;$y++){
for($x=1;$x<$width;$x++){
$color_index = imagecolorat($im, $x, $y);
$color_tran = imagecolorsforindex($im, $color_index);
echo("<span class=\"c\" style=\"color:RGB(".$color_tran['red'].",".$color_tran['green'].",".$color_tran['blue'].");\">");
echo("爱");
echo("</span>");
}
echo("<br>");
}
?>
要注意的是我的程序里用的函数是imagecreatefromgif()
所以变量$url指向的文件应该是GIF格式的,如果想指向JPG格式的文件要用imagecreatefromjpeg()
当然我们可以写在一起,因为第一个函数就可以判断图片的格式,我在这里就不写了!!哈哈
好了,有php环境的赶紧试试是什么吧!呵呵
不建议用太大的图片!小logo就好了!
不然,你可别怪我没告诉你啊!
这个例子没什么实际用途!!但是他可以激发大家学习的乐趣!!
献给正在学习PHP的人!

(0)

相关推荐

  • 需要发散思维学习PHP

    我觉得在学习的过程中,大家要知道"玩",制造点成就感,那样的话 学习的效果和热情就会很高涨, 就会更喜欢自己学习的东西! 举例说明: 今天学习PHP的图像函数部分,学习了几个函数,他们分别是: getimagesize() array getimagesize ( string $filename [, array &$imageinfo ] ) getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JP

  • 学习AngularJs:Directive指令用法(完整版)

    本教程使用AngularJs版本:1.5.3 AngularJs GitHub: https://github.com/angular/angular.js/ AngularJs下载地址:https://angularjs.org/ 摘要:Directive(指令)笔者认为是AngularJ非常强大而有有用的功能之一.它就相当于为我们写了公共的自定义DOM元素或CLASS属性或ATTR属性,并且它不只是单单如此,你还可以在它的基础上来操作scope.绑定事件.更改样式等.通过这个Directiv

  • 攻击方式学习之SQL注入(SQL Injection)第1/3页

    这就给不怀好意的同学可乘之机,利用输入一些奇特的查询字符串,拼接成特定的SQL语 句,即可达到注入的目的.不仅可以获取数据库重要信息,权限没有设置好的话甚至可以删除掉整个表.因此,SQL注入漏洞还是相当的严重的.发现以前偶刚学 写的网站的时候也是靠拼接SQL语句吃饭滴-- 示例 为了更好了学习和了解SQL注入的方法,做了一个示例网页,界面如下:  点击登陆这块的代码如下,注意第5行,我们使用了拼接SQL语句: 复制代码 代码如下: private void Login() { string un

  • 学习哪门编程语言最有前途,最好赚钱,需求量高

    回答者卡特·佩基(Carter Page),谷歌(Google)工程经理 我的答案很短,但是由于这是一个需要站队的讨论,所以我先要介绍一些背景. 我聘用过许多软件工程师,他们身上最有价值的技能就是学习并迅速掌握一门编程语言的能力. 几年前,有一家境外公司为我们提供Java程序,他们的质量一直不太稳定.我可以通过翻阅简历来打造一个远程团队,但是我没法和他们进行面试,因为他们不会说英语.不过这种限制倒是带来了一个有趣的实验. 这些程序员的简历看起来很不错,都有着几年的工作经历.但是,他们写的代码依然

  • Perl学习教程之单行命令详解

    前言 本文主要给大家介绍了关于Perl单行命令的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 与One-Liner相关的perl参数 -a 自动分隔模式,用空格分隔$并保存在@F中,也就是@F=split //, $ -F 指定-a的分隔符 -l 对输入的内容进行自动chomp,对输出的内容自动加换行符 -n 相当于while(<>) -e 执行命令,也就是脚本 -p 自动循环+输出,也就是while(<>){命令(脚本); print;} 记住以上几

  • Ext第一周 史上最强学习笔记---GridPanel(基础篇)

    如果你想实现什么特效,这个文字不适合你,但如果你想Ext文章,我想鄙人的小文非常适合你. 另:这篇教程是建立在Ext2.2上的.这个很多教程都没说明.让人很糊涂.我在此特别说明 网上很多教程,但是实际使用并不是很多,我想作为一个星期一个星期的总结来给各位网络上的朋友带来帮助.希望各位有用.我会从每个细节都说明,尽量不漏掉作为初学者需要知道的基础知识.第一次写教程,见笑了. 因为我学这个是这样一个过程,通过一个控件了解其他的控件,剩下的就是属性查API了.API我自己在翻译CHM版的.因为是个人操

  • 学习YUI.Ext 第七天--关于View&JSONView

    展现一条一条的二维关系的数据,我们可以使用GIRD组件. 但有些场合,如产品展示,画册,我们可以使用View组件,来展示"矩阵"式的数据. View的数据源来自DataModel对象,即包含XMLDataModel和JSONDataModel.尽管View支持JSON,但如果不是用于DataModel,View的子类JSONView更适用,因为它提供更多的事件和方法.一般来说,View用于XML数据源:JSONView用于JSON数据源. View如何工作? 记得以前如何输出一个记录吗

  • 学习YUI.Ext基础第一天

    导言 翻了翻以前的旧贴子,有值得回味的地方共分享: Post1: ................. 我们现在的大量应用依赖于浏览器(主要是 IE)的脚本处理能力,在有些老机器上跑的时候确实会略显缓慢,但是目前的主流机型处理起来已经没有任何问题了.我们设计了一整套的 Web 开发框架,这套框架将随着应用的锤炼而越来越稳定.JavaScript 用的不好容易造成 IE 的崩溃,我们是靠提高代码的重用度来解决这个问题的,因为重用度越高的代码往往越稳定. 有些眼高手低的人往往凭第一眼印象就把 Java

  • Prototype Selector对象学习

    复制代码 代码如下: function $$() { return Selector.findChildElements(document, $A(arguments)); } 这个类可以分成三个部分:第一个部分就是根据不同的浏览器,判断使用什么DOM操作方法.其中操作IE就是用普通的getElementBy* 系列方法:FF是document.evaluate:Opera和Safari是selectorsAPI.第二部分是对外提供的基本函数,像findElements,match等,Eleme

  • Prototype 工具函数 学习

    $H就是建立Hash对象的便捷方法,关于Hash对象具体参考[Prototype 学习--Hash对象 ] $R就是简历ObjectRange对象的便捷方法,关于ObjectRange对象具体参考[Prototype 学习--ObjectRange对象 ] Try.these: Accepts an arbitrary number of functions and returns the result of the first one that doesn't throw an error.

随机推荐