php绘图失真,php实现等比例不失真缩放上传图片的方法

本文实例分析了php实现等比例不失真缩放上传图片的方法。分享给大家供大家参考,具体如下:

有时上传图片时因为图片太大了,不仅占用空间,消耗流量,而且影响浏(图片的尺寸大小不一)。下面分享一种等比例不失真缩放图片的方法,这样,不管上传的图片尺有多大,都会自动压缩到我们设置尺寸值的范围之内。经过测试,证明实用。

function resizeImage($im,$maxwidth,$maxheight,$name,$filetype)

{

$pic_width = imagesx($im);

$pic_height = imagesy($im);

if(($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight))

{

if($maxwidth && $pic_width>$maxwidth)

{

$widthratio = $maxwidth/$pic_width;

$resizewidth_tag = true;

}

if($maxheight && $pic_height>$maxheight)

{

$heightratio = $maxheight/$pic_height;

$resizeheight_tag = true;

}

if($resizewidth_tag && $resizeheight_tag)

{

if($widthratio

$ratio = $widthratio;

else

$ratio = $heightratio;

}

if($resizewidth_tag && !$resizeheight_tag)

$ratio = $widthratio;

if($resizeheight_tag && !$resizewidth_tag)

$ratio = $heightratio;

$newwidth = $pic_width * $ratio;

$newheight = $pic_height * $ratio;

if(function_exists("imagecopyresampled"))

{

$newim = imagecreatetruecolor($newwidth,$newheight);//PHP系统函数

imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);//PHP系统函数

}

else

{

$newim = imagecreate($newwidth,$newheight);

imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);

}

$name = $name.$filetype;

imagejpeg($newim,$name);

imagedestroy($newim);

}

else

{

$name = $name.$filetype;

imagejpeg($im,$name);

}

}

//使用方法:

$im=imagecreatefromjpeg("./20140416103023202.jpg");//参数是图片的存方路径

$maxwidth="600";//设置图片的最大宽度

$maxheight="400";//设置图片的最大高度

$name="123";//图片的名称,随便取吧

$filetype=".jpg";//图片类型

resizeImage($im,$maxwidth,$maxheight,$name,$filetype);//调用上面的函数

希望本文所述对大家PHP程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: .NET矢量绘图控件是一种功能强大的工具,可用于快速创建各种图形和图表。该控件具有直观的界面和易于使用的功能,可帮助开发人员轻松地创建复杂的矢量图形。 该控件提供了许多实用的功能,如自定义绘图对象、图形旋转、缩放和平移等。此外,它还可与用户界面控件和数据可视化控件集成,使用户能够更轻松地通过拖放操作将数据可视化。 .NET矢量绘图控件适用于各种应用场景,如数据可视化、报告和仪表板设计等。它还可与其他.NET技术和平台集成,如WPF、ASP.NET和Windows Forms等,使开发人员能够在不同的应用程序和平台上创建可扩展的矢量图形。 总之,.NET矢量绘图控件是一种功能强大、易于使用且可扩展的工具,可帮助开发人员快速创建复杂的矢量图形和数据可视化应用程序。 ### 回答2: .NET矢量绘图控件是.NET框架中提供的一种可用于绘制不同矢量图形的控件,它可精细地控制图形的每一个细节,可帮助开发人员快速实现基于矢量的图形设计,从而更加高效地开发应用程序。 利用.NET矢量绘图控件,用户可以轻松实现多样化的图形绘制,如2D、3D图形、流程图、组织结构图、UML图和形状。它可以与.NET框架中的其他控件及数据源进行集成,用户可以通过代码或设计视图操作控件进行图形矢量绘制。 .NET矢量绘图控件支持多种绘图方法,如基于路径的、基于多边形的、基于线条、点的和曲线等,同时提供了多种颜色、填充和描边等绘图属性,用户可以灵活地配置所需的图形格式。 总之,.NET矢量绘图控件是.NET框架中的一种强大而灵活的绘图工具,可以使开发人员轻松实现高质量的矢量图形绘制,并支持灵活的定制和集成操作。 ### 回答3: .NET矢量绘图控件是一种用于制作矢量图形的控件。矢量图形是由直线、曲线和节点组成的图形,不像位图那样会因为图像放大或缩小而失真。将矢量图像转换为位图图像时,由于需要更多的像素信息来表示更大的图像,因此图像会变得不清晰。通过使用矢量图像,我们可以保证图像质量的一致性,并且在放大或缩小图像时,不会有任何失真。.NET矢量绘图控件不仅可以用于创建矢量图形,还可以从现有文件中加载矢量图形。控件还提供了许多其他功能,如更改颜色、透明度、填充等。此外,该控件还支持与其他.NET控件的集成,例如Windows Forms和WPF应用程序。 总的来说,.NET矢量绘图控件为.NET开发人员提供了一种创建和显示高质量矢量图形的可靠方法。 它是许多.NET应用程序的重要组成部分,可以用于创建各种类型的图形,例如,技术图形、图表和流程图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值