首页 / 知识
关于php:如何使用GD调整大小并将上传的图像转换为PNG?
2023-04-12 21:20:00

How do I resize and convert an uploaded image to a PNG using GD?我想允许用户以各种格式(至少GIF,JPEG和PNG)上载化身类型的图像,但是将它们全部保存为PNG数据库BLOB。如果图像按像素大小过大,我想在插入数据库之前调整它们的大小。 使用GD进行大小调整和PNG转换的最佳方法是什么? 编辑:可悲的是,我需要使用的服务器上只有GD可用,没有ImageMagick。
您的处理步骤应如下所示:
@ceejayoz只需等待新的GD-它像MySQLi一样是面向对象的,实际上还不错:) 类似这样的东西,也许是:
我尚未测试代码,因此可能存在一些语法错误,但是它应该为您提供一个有关如何完成代码的公平演示。另外,我假定了一个PNG文件。您可能希望使用某种switch语句来确定文件类型。 确定服务器上没有ImageMagick吗? 我邀请您使用PHP(问题用PHP标记)。我使用的托管公司没有根据phpinfo()开启ImageMagick扩展。 但是当我问他们关于它们的问题时,这里说的是可从PHP代码获得的ImageMagick程序的列表。如此简单-PHP中没有IM接口,但是我可以直接从PHP调用IM程序。 我希望您有相同的选择。 我非常同意-将图像存储在数据库中不是一个好主意。 如果要使用gdlib,请使用gdlib 2或更高版本。它具有一个称为imagecopyresampled()的函数,该函数将在调整大小的同时对像素进行插值,并且外观要好得多。 此外,我一直在网上听到有关在数据库中存储图像的错误形式的说明:
我能看到的唯一优点是您不需要保持数据库和图像文件同步。我仍然建议反对。 GD是否绝对必需? ImageMagick更快,生成更好的图像,更可配置,最后(IMO)更加容易编写代码。 phpThumb是一个高级抽象,可能值得一看。 我认为此页面是一个很好的起点。它使用imagecreatefrom(jpeg / gif / png)调整大小并转换图像,然后输出到浏览器。除了输出浏览器外,您还可以将其输出到数据库中的BLOB,而无需花费很多代码重写时间。 本文似乎很适合您想要的内容。您需要将保存的imagejpeg()函数更改为imagepng(),并将其保存到字符串中,而不是将其输出到页面中,但是除此之外,它应该易于复制/粘贴到现有代码中。 |
最新内容
相关内容
python怎么定义用户输入
python怎么定义用户输入,培训,字符串,整数,类型,用户,文本,定义,文档,小数点,位数,python中获取用户输入的方法如下:整数输入#!/usr/bin/pythopythonWeb开发和图形用户界面的模
pythonWeb开发和图形用户界面的模块有哪些?,网站,工具,互动,平台,培训,设计,模块,用户界面,图形,框架,关于PythonWeb开发和图形用户界面的模块python如何获取用户输入
python如何获取用户输入,培训,字符串,整数,类型,文本,文档,用户,小数点,位数,以上,python整数输入#!/usr/bin/python3usr_ip=input("Enteranpythonpillow如何处理图像
pythonpillow如何处理图像,标准,代码,培训,平台,图像,缩放,功能,调色板,切片,路径,pythonpillow如何处理图像1、说明是Python平台事实上的图使用PHP的GDlib imagecopy重新采样
使用PHP的GDlib imagecopy重新采样时,能否保留PNG图像的透明度?,使用PHP的GDlib imagecopy重新采样时,能否保留PNG图像的透明度?,调整,关于wss:通过内置的Web服务将文件上
关于wss:通过内置的Web服务将文件上传到SharePoint,关于wss:通过内置的Web服务将文件上传到SharePoint,服务,文件上传,方法,文档,UploaJava:确定当前Windows用户的编程方
Java:确定当前Windows用户的编程方式,Java:确定当前Windows用户的编程方式,登录,用户名,用户,查找,Java: Programatic Way to DeterminJava Swing:在Jar中显示图像
Java Swing:在Jar中显示图像,Java Swing:在Jar中显示图像,图像,运行,应用程序,路径,Java Swing: Displaying images from within a Jar关于.net:使用System.DirectoryServ
关于.net:使用System.DirectoryServices对域用户进行身份验证,关于.net:使用System.DirectoryServices对域用户进行身份验证,编程,验关于c#:如何停止Designer为用户控件
关于c#:如何停止Designer为用户控件上的公共属性生成代码?,关于c#:如何停止Designer为用户控件上的公共属性生成代码?,属性设置,用户控件,计算用户定义的公式(使用C ++)
计算用户定义的公式(使用C ++),计算用户定义的公式(使用C ++),用户,定义,程序,中有,calculating user defined formulas (with c++)关于c#:存储.NET应用程序用户设置的
关于c#:存储.NET应用程序用户设置的最佳方法是什么?,关于c#:存储.NET应用程序用户设置的最佳方法是什么?,商店,应用程序,窗体,位置,What is