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/
相关推荐
软件介绍 WaterMake是一非常实用的水印制作工具,不进可以制作简单的文字水印,还可以制作盲水印,盲水印换句话就是隐形水印,别人无法看到的水印,但的确水印又存在水印,既美观又可以保护...2、采用PNG格式无损压缩
不影响原有的点击或选中事件 watermark({ watermark_txt: ‘水印文字’,watermark_id:‘需要加水印的标签id’});
GiliSoft Image Watermark Master 是一款大师级电脑图片去水印软件,只需几个步骤就可以帮助大家轻松高效的从指定图片中去除诸如徽标、水印、电源线、人物、文本等图片水印,全面兼容JPG、PNG、BMP等主流图片格式,...
通过python实现傅里叶变换,环境为python3
A-PDF Watermark是一个非常强大的PDF水印工具,可以批量为PDF文件添加文本或图片水印,如文件名、公司名、签名、产品图片,从而保护PDF文件。A-PDF Watermark也支持为PDF文件添加标记信息,如日期时间、页码、作者。
为图片添加水印,水印可以采用文字和图片
Amazing PDF Watermark Creator Pro这款PDF工具带有三个简单实用的PDF水印模板,Demo1和Demo2允许用户将文本水印添加到PDF,同时大家可以更改PDF水印字体的大小、颜色、不透明度、旋转参数、页面范围等属性值,Demo3...
Easy Watermark Studio可以加水印处理,支持阴影、外发光等多种水印效果,支持多种图片格式、支持GIF格式等加水印,让的作品不再被盗用! 还在担心自己的图片没有水印加吗?让Easy Watermark Studio帮你加水印吧。 ...
Watermark Software 是一款可以批量添加水印的软件;使用非常简单, 支持文字水印和多种图片格式水印,如 JPG, PNG, GIF, BMP, TIFF 等。
生成文字水印或者是图片水印,需求是可预览水印,水印文字可自行赋值,图片可自己上传进行赋值就可,如果要添加其他种类水印,在watermarkjs里可自行添加测试,从其他博客找的进行了修改
photoWatermark中文版,轻松添加各种格式的水印。支持预览功能。
vue实现页面添加水印效果 最近在做项目的时候要求给页面加上水印效果,废话不多说直接上代码: export function watermark(settings) { debugger; //默认设置 var defaultSettings={ watermark_txt:"text", ...
可以批量添加水印 英文版 支持 添加图片水银 方便 丰富 简单
RemoveWatermark RemoveWater Win7去水印 去水印 32位和64位系统,两个文件使用时需要区分 可以去水印 window7 家庭普通版 7600 注:对于使用128g补丁后,win7sp1出现内部测试版水印,一样有效果
Star Watermark是一款易用的批量添加图片水印的小工具,能够轻松添加文本及图像水印到你的图片。快速使用方法:添加新的或编辑现有的水印模板,在左下角添加你的模板并自定义它的样式,也可以双击一个模板快速打开...
各种数字水印的matlab源代码,包括离散余弦,小波变换等
watermark源代码里写了个函数如何求得水印图像与宿主图像间的差别,还有水印的代码
利用jquery实现的在页面添加水印,并且使用了jquery的resizeend实现了,根据窗口调整大小自动适应添加水印
word/ppt转换pdf-pdf转换为jpg-jpg加水印 共使用四种方法 MSoffice2007 wps2009 open office 具体内容参照资源中的word说明。