1. 添加水印
经测试,效果不错,jpg 尤佳:
<?php define('WATERMARK_OVERLAY_IMAGE', $_SERVER['DOCUMENT_ROOT'] .'/public/assets/logo.png'); /* * $img 是图片的绝对路径 * 用法:watermark($_SERVER['DOCUMENT_ROOT'] .'/public/images/bg.jpg'); */ function watermark($img) { ob_start(); // Set content type header('Content-type: image/jpg'); // Cerate watermark $wm = imagecreatefrompng(WATERMARK_OVERLAY_IMAGE); // getting dimensions of watermark image $wm_size = getimagesize(WATERMARK_OVERLAY_IMAGE); // Create image $image = imagecreatefromjpeg($img); // Get image size $size = getimagesize($img); // placing the watermark center $dest_x = ($size[0] - $wm_size[0])/2; $dest_y = ($size[1] - $wm_size[1])/2; // blending the images together imagealphablending($image, true); imagealphablending($wm, true); // creating the new image imagecopy($image, $wm, $dest_x, $dest_y, 0, 0, $wm_size[0] , $wm_size[1]); // Send image to the browser imagejpeg($image, null, 100); //Save image in cache // destroy image and watermak imagedestroy($image); imagedestroy($wm); $output = ob_get_contents(); ob_end_clean(); unlink($img); $size = strlen($output); $ftp = @fopen($img, "a"); fwrite($ftp,$output); fclose($ftp); }
2. png2jpg
You need to create a fresh image with a white (or whatever you want) background and copy the none-transparent pixels from the png to that image:
function png2jpg($originalFile, $outputFile, $quality) { $source = imagecreatefrompng($originalFile); $image = imagecreatetruecolor(imagesx($source), imagesy($source)); $white = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $white); imagecopy($image, $source, 0, 0, 0, 0, imagesx($image), imagesy($image)); imagejpeg($image, $outputFile, $quality); imagedestroy($image); imagedestroy($source); }
3. gif2jpg
For those interested in my solution, I simply used the built in GD PHP functions. I have little experience dealing with gif files so I was expecting this to be difficult. The fact of the matter is the CodeIgniter Image_lib and extended library (Which I never got to work properly) is overkill for this.
$image = imagecreatefromgif($path_to_gif_image); imagejpeg($image, $output_path_with_jpg_extension);
4. Resizing images with PHP
The following script will easily allow you to resize images using PHP and the GD library. If you’re looking to resize uploaded images or easily generate thumbnails give it a try
Update: Looking to resize transparent PNG’s and GIF’s? We’ve updated our original code, take a look at http://www.white-hat-web-design.co.uk/blog/retaining-transparency-with-php-image-resizing/
Usage
Save the code from the ‘the code’ section below as SimpleImage.php and take a look at the following examples of how to use the script.
The first example below will load a file named picture.jpg resize it to 250 pixels wide and 400 pixels high and resave it as picture2.jpg
<?php include('SimpleImage.php'); $image = new SimpleImage(); $image->load('picture.jpg'); $image->resize(250,400); $image->save('picture2.jpg'); ?>
<?php include('SimpleImage.php'); $image = new SimpleImage(); $image->load('picture.jpg'); $image->resizeToWidth(250); $image->save('picture2.jpg'); ?>
<?php include('SimpleImage.php'); $image = new SimpleImage(); $image->load('picture.jpg'); $image->scale(50); $image->save('picture2.jpg'); ?>
You can of course do more than one thing at once. The following example will create two new images with heights of 200 pixels and 500 pixels
<?php include('SimpleImage.php'); $image = new SimpleImage(); $image->load('picture.jpg'); $image->resizeToHeight(500); $image->save('picture2.jpg'); $image->resizeToHeight(200); $image->save('picture3.jpg'); ?>
The output function lets you output the image straight to the browser without having to save the file. Its useful for on the fly thumbnail generation
<?php header('Content-Type: image/jpeg'); include('SimpleImage.php'); $image = new SimpleImage(); $image->load('picture.jpg'); $image->resizeToWidth(150); $image->output(); ?>
The following example will resize and save an image which has been uploaded via a form
<?php if( isset($_POST['submit']) ) { include('SimpleImage.php'); $image = new SimpleImage(); $image->load($_FILES['uploaded_image']['tmp_name']); $image->resizeToWidth(150); $image->output(); } else { ?> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="uploaded_image" /> <input type="submit" name="submit" value="Upload" /> </form> <?php } ?>
The code
<?php /* * File: SimpleImage.php * Author: Simon Jarvis * Copyright: 2006 Simon Jarvis * Date: 08/11/06 * Link: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details: * http://www.gnu.org/licenses/gpl.html * */ class SimpleImage { var $image; var $image_type; function load($filename) { $image_info = getimagesize($filename); $this->image_type = $image_info[2]; if( $this->image_type == IMAGETYPE_JPEG ) { $this->image = imagecreatefromjpeg($filename); } elseif( $this->image_type == IMAGETYPE_GIF ) { $this->image = imagecreatefromgif($filename); } elseif( $this->image_type == IMAGETYPE_PNG ) { $this->image = imagecreatefrompng($filename); } } function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image,$filename,$compression); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image,$filename); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image,$filename); } if( $permissions != null) { chmod($filename,$permissions); } } function output($image_type=IMAGETYPE_JPEG) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image); } } function getWidth() { return imagesx($this->image); } function getHeight() { return imagesy($this->image); } function resizeToHeight($height) { $ratio = $height / $this->getHeight(); $width = $this->getWidth() * $ratio; $this->resize($width,$height); } function resizeToWidth($width) { $ratio = $width / $this->getWidth(); $height = $this->getheight() * $ratio; $this->resize($width,$height); } function scale($scale) { $width = $this->getWidth() * $scale/100; $height = $this->getheight() * $scale/100; $this->resize($width,$height); } function resize($width,$height) { $new_image = imagecreatetruecolor($width, $height); imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); $this->image = $new_image; } } ?>
Further Information
This script will eventually be developed further to include functions for easily sharpening, bluring, cropping, brightening and colouring images.
from: http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/
相关推荐
这段代码会将名为`watermark.png`的水印图片添加到`original.jpg`的右下角,并保存为`output.jpg`。水印的大小会根据原图尺寸自动调整,位置也可以根据需求进行修改。 关于“工具”,可能指的是现成的软件或在线...
静态水印通常是指在图片编辑软件中预先添加的,固定位置和大小的标记;而动态水印则是在图片加载时通过前端或后端代码实时生成的,可以根据不同的访问者、时间等因素动态变化。本话题主要关注动态水印,特别是通过...
以下是一个简单的示例代码片段,展示了如何添加文字水印(这里假设你已经有一个名为“watermark.png”的水印图片文件): ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; ...
例如,`addImageWatermark($watermarkPath, $position, $opacity, $resize)`方法,`$resize`参数可以决定是否按照原图大小或自定义大小放置水印。 5. **调整图片质量**:在保存图像时,可以调整JPEG或PNG的质量来...
GraphicsMagick是一款强大的开源图像处理工具,它支持各种图像格式,并提供了一系列的命令行工具,可用于执行复杂的图像操作,如添加水印、合成图片、图片转换以及多种图像处理任务。在本文中,我们将深入探讨如何...
im_watermark = Image.open("watermark.png") # 替换为你的水印图片路径 im_after = add_watermark_to_image(im_before, im_watermark) im_after.show() # im_after.save('im_after.jpg') ``` 这个函数首先将输入的...
在Java编程中,给Excel文件动态添加水印是一项常见的需求,尤其在数据安全和文档保护方面。本示例中,我们将使用Apache POI和JXL库来实现这一功能。Apache POI是Java处理Microsoft Office格式文件(如Excel、Word)...
ImageMagick是一个跨平台的开源软件,支持多种图像格式,如JPEG、PNG、GIF、BMP等,并能执行各种图像处理任务,包括缩放、旋转、裁剪、颜色校正、添加水印等。 1. **基本概念** - Imagick类:Imagick是PHP的扩展,...
这个类库通常用于优化图像大小,适应不同的显示环境,或者为版权保护添加自定义水印。下面我们将深入探讨这些功能及其实现方式。 首先,**图片缩放** 是调整图像尺寸的过程,以适应特定的展示区域或减少文件大小。...
这个组件让你能够方便地对图像进行各种操作,包括但不限于裁剪、旋转、调整大小、添加水印、合成图像等。在 PHP 开发中,尤其是在构建 Web 应用程序、电商平台或者社交媒体平台时,这样的图像处理功能是非常必要的。...
PearlMountain Image Converter 批量图片转码 ...PearlMountain Photo Watermark 批量加水印 Protects your photo's copyright by adding image watermark, text watermark, logo to digital photos in batch mode.
在这个`batch_process`函数中,我们不仅处理了图片大小,还预留了添加水印的接口,可以根据需要进行扩展。 至于"arm"标签,这通常指的是ARM架构,一种广泛应用于嵌入式设备和移动设备的处理器架构。如果你的图片...
- **添加水印**:可以使用`composite -gravity south -dissolve 50% watermark.png input.jpg output.jpg`命令为图像添加透明度为50%的水印。 #### 四、使用PHP集成ImageMagick 除了命令行之外,开发者还可以通过...
在网站开发中,ImageMagick和Imagick PHP扩展被广泛用于用户上传图片的处理,例如生成缩略图、调整图片大小以适应网页布局、添加水印或者进行图片美化等。同时,它也可以在数据分析中发挥作用,比如识别图像颜色模式...
首先,GD库是PHP内建的一个图像处理库,它可以处理多种图像格式,如JPEG、PNG、GIF等。GD库提供了基本的图像操作功能,如创建、打开、保存图像,以及调整尺寸、裁剪、添加文字等。然而,GD库在处理复杂图像效果(如...
2. **图像大小调整**:`imagecopyresampled()`函数用于对图像进行高质量的缩放,它可以保持图像的比例并避免像素化。 3. **裁剪图像**:`imagecrop()`函数允许我们指定图像的矩形区域进行裁剪。 4. **旋转图像**:...
支持图片裁剪,加水印,加文字,压缩等功能的php图片处理类。 try { // Create a new SimpleImage object $image = new \claviska\SimpleImage(); // Magic! ✨ $image ->fromFile('image.jpg') // load image....
图像调整大小和图像水印样本 设置 GraphicsMagick 设置 ImageMagick 安装依赖npm install 准备摇滚!! 在不损失质量的情况下调整图像...给kitten.jpg添加水印 node watermark.js 它将生成kitten-watermarked.png
`think\Image`提供了`open`方法来打开一个图片文件,支持多种格式(如JPEG、PNG、GIF等): ```php $image->open('path/to/image.jpg'); ``` 4. **基本操作** - **裁剪**:使用`crop`方法,指定裁剪的宽度、...
2. **水印添加**: `think\Image`库提供了`water`方法来添加水印。你可以指定水印的图像路径、位置和透明度。位置可以是预定义的常量,如`THINK_IMAGE_WATER_NORTH`, `THINK_IMAGE_WATER_SOUTH`, 等等。透明度范围...