分享PHP为图片添加水印的函数

代码如下:

<?php
/**
 * 追加水印
 * 
 * @param string $source_img 原始图片url
 * @param string $water_map 水印图片url
 */
function addWaterMap($source_img, $water_map)
{
    $img = imagecreatefromjpeg($source_img); //读取原图
    $img_x = imagesx($img); //原图宽
    $img_y = imagesy($img); //原图高
    imagealphablending($img, true);//设置为混合填色模式
    //$img_water_map = imagecreatefromjpeg($water_map); //读取水印图片
    $img_water_map = imagecreatefrompng($water_map);
    $water_x = imagesx($img_water_map); //水印宽
    $water_y = imagesy($img_water_map); //水印高
    $wimg_x = $img_x - $water_x - 10; //水印x坐标
    $wimg_y = $img_y - $water_y - 10; //水印y坐标
    imagecopy($img, $img_water_map, $wimg_x, $wimg_y, 0, 0, $water_x, $water_y); //分别为原图,水印,水印x坐标,水印y坐标,水印图片横轴开始点,水印图片纵轴开始点,水印横轴结束,水印纵轴结束
    imagejpeg($img, $source_img, 95); //输出到目标文件
    imagedestroy($img); //销毁内存数据流
    imagedestroy($img_water_map); //销毁内存数据流
    return true;
}
?>

通过索引优化MySQL语句的实现方法(转载)

使用索引,可以优化含有ORDER BY的MySQL语句,下文就将为您详细介绍这种优化MySQL语句的方法,希望对您学习MySQL语句优化方面有所帮助。

关于建立索引的几个准则:

1、合理的建立索引能够加速数据读取效率,不合理的建立索引反而会拖慢数据库的响应速度。

2、索引越多,更新数据的速度越慢。

3、尽量在采用MyIsam作为引擎的时候使用索引(因为MySQL以BTree存储索引),而不是InnoDB。但MyISAM不支持Transcation。

4、当你的程序和数据库结构/SQL语句已经优化到无法优化的程度,而程序瓶颈并不能顺利解决,那就是应该考虑使用诸如memcached这样的分布式缓存系统的时候了。

5、习惯和强迫自己用EXPLAIN来分析你SQL语句的性能。

阅读更多

简朝阳:MySQL性能调优最佳实践经验(转载)

简朝阳认为,对于排序的优化,最有效的办法就是借助索引的帮助,让索引的有序特性自动带给你有序的数据,这在 MySQL 中是非常常见的优化方式,屡试不爽。当然,对于其他数据库如 Oracle 等也同样奏效。

以前数据库的性能瓶颈大多时候都出现在 IO 层面,现在经常也遇到 CPU 成为瓶颈的时候,而且并不是在使用高性能IO设备如SSD之类的场景下。对于 CPU 成为瓶颈的数据库优化,目前遇到的场景大多是排序和重复读取过多造成。

阅读更多