仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1468|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网页设计PHP生成缩略图的完成

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:56:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板缩略图   PHP令咱们欣喜的就是在图形图像处置方面要忧于ASP,用GD库PHP就能够轻松的完成缩略图。这一篇文章咱们的目标就是用GD来生成缩略图,PHP可以把缩略图直接生成保送到阅读器也能够以文件的模式把其存储到硬盘傍边。



在生成缩略图的进程傍边咱们需求用到GD库傍边的几个函数:

getimagesize(string filename [,array var])),获得图象的信息,前往值是一人array,包含几项信息$var[0]----前往图象的width,$var[1]----前往height,[2]前往图象文件的type,[4]前往的是与<img src="">傍边的wdith,height有关的width="",height=""信息。

imageX(resource image)

imageY(resource image)  前往图象的宽和高

imagecopyresized(des img,src img,int des_x,int des_y,int src_x,int src_y,int des_w,int des_h,int src_w,int src_y)  复制并截取区域图象

imagecreatetruecolor(int width,int height)  创立一个真彩图

imagejpeg(resource image)

上面就是Code:

<?php
# Constants
define(IMAGE_BASE, '/var/www/html/mbailey/images'
);
define(MAX_WIDTH, 150
);
define(MAX_HEIGHT, 150
);

# Get image location
$image_file = str_replace('..', '', $_SERVER['QUERY_STRING'
]);
$image_path = IMAGE_BASE . "/$image_file"
;

# Load image
$img = null
;
$ext = strtolower(end(explode('.', $image_path
)));
if (
$ext == 'jpg' || $ext == 'jpeg'
) {
   
$img = @imagecreatefromjpeg($image_path
);
} else if (
$ext == 'png'
) {
   
$img = @imagecreatefrompng($image_path
);
# Only if your version of GD includes GIF support
} else if ($ext == 'gif'
) {
   
$img = @imagecreatefrompng($image_path
);
}

# If an image was successfully loaded, test the image for size
if ($img
) {

   
# Get image size and scale ratio
   
$width = imagesx($img
);
   
$height = imagesy($img
);
   
$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height
);

   
# If the image is larger than the max shrink it
   
if ($scale < 1
) {
        
$new_width = floor($scale*$width
);
        
$new_height = floor($scale*$height
);

        
# Create a new temporary image
        
$tmp_img = imagecreatetruecolor($new_width, $new_height
);

        
# Copy and resize old image into new image
        
imagecopyresized($tmp_img, $img, 0, 0, 0, 0
,
                        
$new_width, $new_height, $width, $height
);
        
imagedestroy($img
);
        
$img = $tmp_img
;
    }
}

# Create error image if necessary
if (!$img
) {
   
$img = imagecreate(MAX_WIDTH, MAX_HEIGHT
);
   
imagecolorallocate($img,0,0,0
);
   
$c = imagecolorallocate($img,70,70,70
);
   
imageline($img,0,0,MAX_WIDTH,MAX_HEIGHT,$c2
);
   
imageline($img,MAX_WIDTH,0,0,MAX_HEIGHT,$c2
);
}

# Display the image
header("Content-type: image/jpeg"
);
imagejpeg($img
);
?>



咱们把下面的Code存储为test.php,然后经由过程test.php?image name的模式来会见,了局会让你欣喜的,由于在这里你看到了PHP的长处,它可让ASP相形见绌。

下面的这段代码傍边咱们经由过程end(explode(".",$image_path)来获得文件的扩大名,然而我感到仍是不睬想。如许是可以获得文件的类型的,由于end()函数会跳到本array的最初一个单位,然而假如咱们采取getimagesize()会获得更加壮大的专门针关于图象文件的类型。

本法式显示的缩略图是限制宽高都在150内,然后用min()函数来获得它们比值的最小值来盘算缩略图的宽和高,而且经由过程一系列的GD库函数来获得响应的信息,而且出现给阅读器,固然你也能够写到你所利用的硬盘傍边。

好了,这就是PHP的缩略图功效,人人感觉有甚么好的定见可以多多拍砖!完成一个功能齐全的动态站点
只想知道 该用户已被删除
沙发
发表于 2015-2-4 07:11:43 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
莫相离 该用户已被删除
板凳
发表于 2015-2-6 21:55:28 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-8 12:30:49 | 只看该作者
当然这种网站的会员费就几十块钱。
乐观 该用户已被删除
5#
发表于 2015-2-25 12:58:57 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
深爱那片海 该用户已被删除
6#
发表于 2015-3-3 21:25:06 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
小魔女 该用户已被删除
7#
发表于 2015-3-6 19:16:05 | 只看该作者
做为1门年轻的语言,php一直很努力。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-10 00:57:16 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
简单生活 该用户已被删除
9#
发表于 2015-3-11 05:28:46 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
再见西城 该用户已被删除
10#
发表于 2015-3-11 14:07:02 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
11#
发表于 2015-3-15 03:21:42 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
金色的骷髅 该用户已被删除
12#
发表于 2015-3-15 09:38:10 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
若相依 该用户已被删除
13#
发表于 2015-3-21 23:15:40 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
活着的死人 该用户已被删除
14#
发表于 2015-3-26 23:40:52 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
admin 该用户已被删除
15#
发表于 2015-4-2 20:32:51 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
透明 该用户已被删除
16#
发表于 2015-4-4 04:44:11 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
蒙在股里 该用户已被删除
17#
发表于 2015-4-5 20:54:09 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
飘灵儿 该用户已被删除
18#
发表于 2015-4-12 20:26:29 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
谁可相欹 该用户已被删除
19#
发表于 2015-4-14 15:52:01 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
老尸 该用户已被删除
20#
发表于 2015-4-18 09:18:57 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 20:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表