当前位置: 首页 > news >正文

PHP先等比缩放再无损裁剪图片【实例源码】

很多人在使用程序裁剪图片时,是在原图上直接裁剪,这样的裁剪结果是使得图片变得不完整了,理想的做法是先等比缩小图片,再把多余的部分裁掉,这样会保留更多的图片信息。

实现代码:

<?php/*** 说明:函数功能是把一个图像裁剪为任意大小的图像,图像不变形** @param string $src_file   需要处理图片的文件名(绝对路径)* @param string $dst_file   生成新图片的保存文件名(绝对路径)* @param int    $new_width  生成新图片的宽* @param int    $new_height 生成新图片的高*/
function my_image_resize($src_file, $dst_file, $new_width, $new_height){if ($new_width < 1 || $new_height < 1) {echo 'params width or height error !';die;}if (!file_exists($src_file)) {echo $src_file . ' is not exists !';die;}// 图像类型$type = exif_imagetype($src_file);$support_type = array(IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_GIF);if (!in_array($type, $support_type, true)) {echo 'this type of image does not support! 

相关文章:

PHP先等比缩放再无损裁剪图片【实例源码】

很多人在使用程序裁剪图片时,是在原图上直接裁剪,这样的裁剪结果是使得图片变得不完整了,理想的做法是先等比缩小图片,再把多余的部分裁掉,这样会保留更多的图片信息。 实现代码: <?php/*** 说明:函数功能是把一个图像裁剪为任意大小的图像,图像不变形** @param …...

共享广告主项目:广告也能共享?全民广告时代来袭

科思创业汇 大家好&#xff0c;这里是科思创业汇&#xff0c;一个轻资产创业孵化平台。赚钱的方式有很多种&#xff0c;我希望在科思创业汇能够给你带来最快乐的那一种&#xff01; 广告是我们日常生活中在衣食住行中可以看到的一种宣传方式。广告作为互联网社会的信息传播方…...

Flink-间隔联结

间隔联结只支持事件时间间隔联结如果遇到迟到数据&#xff0c;则会关联不上&#xff0c;比如来了一个5秒的数据&#xff0c;它可以关联前2秒的数据&#xff0c;后3秒的数据&#xff0c;就是可以关联3秒到8秒的数据&#xff0c;然后又来了一个6秒的数据&#xff0c;可以关联4秒到…...

redis的持久化

第一章、redis的持久化 1.1&#xff09;持久化概述 ①持久化可以理解为将数据存储到一个不会丢失的地方&#xff0c;Redis 的数据存储在内存中&#xff0c;电脑关闭数据就会丢失&#xff0c;所以放在内存中的数据不是持久化的&#xff0c;而放在磁盘就算是一种持久化。 ②为…...

藏语翻译器:多功能翻译软件

这是是一款能够将藏语翻译成其他语言或将其他语言翻译成藏语的软件。该软件能够识别并翻译藏语中的常用词汇和短语&#xff0c;并且支持多种常见语言的翻译&#xff0c;例如英语、汉语、法语、德语等等。此外&#xff0c;藏语翻译器还具有简单易用的用户界面&#xff0c;方便用…...

Java课题笔记~ JavaWeb概述/开发基础

JavaWeb概述/开发基础 1.XML基础 &#xff08;1&#xff09;XML概述 &#xff08;2&#xff09;XML语法 &#xff08;3&#xff09;DTD约束 &#xff08;4&#xff09;Schema约束&#xff08;XML Schema 比 DTD 更强大&#xff09; 2.Web基础知识 Web是一个分布式的超媒…...

【解放ipad生产力】如何在平板上使用免费IDE工具完成项目开发

我的博客即将同步至腾讯云开发者社区&#xff0c;邀请大家一同入驻&#xff1a;https://cloud.tencent.com/developer/support-plan?invite_code3o19zyy2pneoo 前言 很多人应该会像我一样吧&#xff0c;有时候身边没电脑突然要写项目&#xff0c;发现自己的平板没有一点作用&…...

IDEA快捷键总结

切换窗口 Alt&#xff08;1-9&#xff09; Alt1 打开或者关闭左侧project Alt4 Run窗口 Alt5 Debug窗口 Alt7 类结构窗口 生成构造函数、get、set等方法 Altinsert 快速生成输出语句 Soutenter键 运行程序 chtlshiftf10 运行程序 shiftf9 debug方式运行程序 代码…...

OpenJDK Maven 编译出错: package jdk.nashorn.internal.runtime.logging does not exist

前言 OpenJDK 1.8.0Maven 3.8.5TencentOS Server 3.1 错误信息 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project tour-common: Compilation failure: Compilation failure: [ERROR] /opt/tour-c…...

.Net Framework请求外部Api

要在.NET Framework 4.5中进行外部API的POST请求&#xff0c;你可以使用HttpClient类。 1. Post请求 using System; using System.Net.Http; using System.Threading.Tasks;class Program {static async Task Main(string[] args){// 创建一个HttpClient实例using (HttpClien…...

线程池工作原理深入解析

目录 1. 线程正常的生命周期 2. 为什么要用线程池&#xff1f; 3. 线程池的核心原理 4. 怎样创建线程池&#xff1f; 5.线程池的代码实现 6. ThreadPoolExecutor 源码分析 7. ThreadPoolExecutor 工作原理展示&#xff08;重点&#xff09; 1. 线程正常的生命周期 我们知…...

chatGPT小白快速入门课程大纲

以下是关于ChatGPT的培训课程大纲,分为7部分,我们会在后续写一个系列的相关文章: 1. 介绍 ChatGPT是什么?ChatGPT是由谁开发的?ChatGPT是一个什么样的语言模型? 2. 功能与特点 ChatGPT可以做什么?ChatGPT有哪些特点?ChatGPT与传统语言模型的区别? 3. 使用方法 如何…...

网络编程——多路复用——epoll机制

理解 epoll&#xff1a;高效的 Linux I/O 多路复用机制 在网络编程中&#xff0c;处理多个并发连接是一个常见的挑战。传统的方式通常使用阻塞式 I/O 或者多线程/多进程来处理并发连接&#xff0c;但这些方法都存在一些性能和资源管理的问题。为了解决这些问题&#xff0c;Lin…...

chapter14:springboot与安全

Spring Boot与安全视频 Spring Security, shiro等安全框架。主要功能是”认证“和”授权“&#xff0c;或者说是访问控制。 认证&#xff08;Authentication&#xff09;是建立在一个声明主体的过程&#xff08;一个主体一般指用户&#xff0c;设备或一些可以在你的应用程序中…...

Linux初识网络基础

目录 网络发展 认识“协议 ” 网络协议 OSI七层模型&#xff1a; TCP/IP五层&#xff08;或四层&#xff09;模型 网络传输基本流程 网络传输流程图&#xff1a; 数据包封装和封用 网络中的地址 认识IP地址&#xff1a; 认识MAC地址&#xff1a; 网络发展 1.独立…...

vue3+ts 动态导入多文件组件

1、在components文件夹中新建index.ts文件&#xff08;components文件夹下为创建的组件&#xff09; // index.ts const modules import.meta.globEager("./*.vue"); //参数为组件路径 let componentsOpts {}const getCaption (obj, str, z: boolean) > {let…...

补充122836356

ul {margin-bottom: 20px;& > li {margin-bottom: 0;} }等效于ul {margin-bottom: 20px; }ul > li {margin-bottom: 0; }CSS中的&代表的什么 如源码&#xff1a; ul{ margin-bottom: 20px; & >li { margin-bottom: 0; } } & 表示嵌套的上一级 这是s…...

记录 pl-table 表格头部文字抖动的问题

本文记录一个实际开发中 pl-table 的问题&#xff0c;项目比较老&#xff0c;vue还是2.x版本。pl-table 是基于 el-table 改造过来的表格展示组件&#xff0c;已经停止更新。 问题描述 当 data 内数据动态改变时&#xff0c;pl-table 的表头部分&#xff0c;列的文字会左右抖动…...

Vite 创建 Vue项目之后,eslint 错误提示的处理

使用 npm create vuelatest创建 vue 项目&#xff08;TS&#xff09;之后&#xff0c;出现了一些 eslint 错误提示&#xff0c;显然&#xff0c;不是代码真实的错误&#xff0c;而是提示搞错了。 vuejs/create-vue: &#x1f6e0;️ The recommended way to start a Vite-pow…...

FFmpeg 硬编码VideoToolBox流程

介绍 FFmpeg已经提供对 VideoToolBox 的编解码支持&#xff1b;主要涉及到的文件有videotoolbox.c、videotoolbox.h、videotoolboxenc.c、ffmepg_videotoolbox.c。在编译 FFmpeg 源码时&#xff0c;想要支持VideoToolBox&#xff0c;在 configure 时&#xff0c;需要–enable-…...

API调试工具横向评测:Apifox、Reqable、Bruno等6款工具实战对比

1. API调试工具选型的关键指标 作为经常和API打交道的开发者&#xff0c;我这些年用过的调试工具少说也有十几款。每次新项目启动时&#xff0c;选工具都能纠结半天。经过多次踩坑后&#xff0c;我总结出几个核心评估维度&#xff1a; 启动速度直接影响工作效率。记得有次紧急排…...

从零到一:手把手教你构建专属Pikachu漏洞演练场

1. 为什么需要搭建Pikachu漏洞演练场 刚开始学习网络安全时&#xff0c;很多人都会遇到一个尴尬的问题&#xff1a;学了很多理论&#xff0c;但找不到合适的实战环境。直接拿真实网站练手既不道德也不合法&#xff0c;这时候就需要一个安全、可控的漏洞演练平台。Pikachu就是这…...

如何快速上手p5.js Web Editor:免费在线创意编程的终极指南

如何快速上手p5.js Web Editor&#xff1a;免费在线创意编程的终极指南 【免费下载链接】p5.js-web-editor The p5.js Editor is a website for creating p5.js sketches, with a focus on making coding accessible and inclusive for artists, designers, educators, beginne…...

U盘格式选FAT32还是NTFS?从一次文件复制报错,聊聊Windows磁盘格式的‘权限’那些事儿

U盘格式选FAT32还是NTFS&#xff1f;从文件系统底层解析权限管理的本质 上周帮同事转移项目文档时&#xff0c;那个熟悉的黄色警告弹窗又一次出现&#xff1a;"确定要在不复制其属性的情况下复制此文件&#xff1f;"。这已经是本月第三次遇到类似问题了&#xff0c;每…...

Avalonia UI ..-RC正式发布前

一、什么是 Q 饱和运算&#xff1f; 1. 核心痛点&#xff1a;普通运算的 “数值回绕” 普通算术运算&#xff08;如 ADD/SUB&#xff09;溢出时&#xff0c;数值会按补码规则 “回绕”&#xff0c;导致结果完全错误&#xff1a; 示例&#xff1a;int8_t 类型最大值 127 1 → 结…...

Gemma-3-270m惊艳作品:生成可直接导入Postman的API测试集合JSON

Gemma-3-270m惊艳作品&#xff1a;生成可直接导入Postman的API测试集合JSON 如果你是一名开发者&#xff0c;肯定遇到过这样的烦恼&#xff1a;每次开发新API都需要手动在Postman里一个个创建测试请求&#xff0c;费时费力还容易出错。今天我要分享一个超级实用的技巧——用Ge…...

解锁iPhone应用安装新维度:深度解析移动端IPA安装技术

解锁iPhone应用安装新维度&#xff1a;深度解析移动端IPA安装技术 【免费下载链接】App-Installer On-device IPA installer 项目地址: https://gitcode.com/gh_mirrors/ap/App-Installer 在iOS生态系统中&#xff0c;应用安装通常被严格限制在App Store渠道&#xff0c…...

航天仿真进阶:用STK+MATLAB Connector打通数据流,这几个版本兼容性坑你踩过吗?

航天仿真进阶&#xff1a;STK与MATLAB版本兼容性全景指南 当STK的卫星轨道数据需要与MATLAB的算法能力结合时&#xff0c;版本兼容性问题往往成为工程师的第一道门槛。我曾亲眼见过一个航天仿真团队因为版本选择不当&#xff0c;导致项目延期两周——他们原本计划用三天完成的…...

MGeo门址解析模型实际作品分享:1000+真实地址文本结构化结果集

MGeo门址解析模型实际作品分享&#xff1a;1000真实地址文本结构化结果集 1. 引言&#xff1a;从混乱文本到清晰结构&#xff0c;地址解析的价值有多大&#xff1f; 想象一下&#xff0c;你收到了一条用户留言&#xff1a;“麻烦送到朝阳区望京SOHO塔3B座15层1501室&#xff…...

告别繁琐!WinRAR在Win11右键菜单的两种高效配置方案全解析

Win11右键菜单的WinRAR终极优化指南&#xff1a;极简派与功能派的完美平衡术 每次在Windows 11的资源管理器里右键点击压缩文件时&#xff0c;那个冗长的WinRAR子菜单是否让你感到效率受阻&#xff1f;作为一款装机量超过5亿的压缩工具&#xff0c;WinRAR在Windows 11上的右键菜…...