整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

wangEditor-轻量级富文本+PHP 本地图片

wangEditor-轻量级富文本+PHP 本地图片采坑之旅

段时间整富文本整的我头疼,一开始用的是百度的ueditor编辑器

优点:插件多,基本满足各种需求,类似贴吧中的回复界面。

缺点:不再维护,文档极少,使用并不普遍,图片只能上传到本地服务器,如果需要上传到其他服务器需要改动源码,较为难办,加载速度慢。

后放弃ueditor,主要原因是无法上传视频,连官网的demo都无法上传.....

最后找了个既轻量级又能满足需求的编辑器----wangEditor,而且是中文版的,方便阅读

编辑器官网:http://www.wangeditor.com/

现在进入正文:

1、代码示例如下。注意,以下代码中无需引用任何 CSS 文件!!!

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>wangEditor demo</title>
</head>
<body>
 <div id="editor">
 <p>欢迎使用 <b>wangEditor</b> 富文本编辑器</p>
 </div>
 <!-- 注意, 只需要引用 JS,无需引用任何 CSS !!!-->
 <script type="text/javascript" src="/wangEditor.min.js"></script>
 <script type="text/javascript">
 var E=window.wangEditor
 var editor=new E('#editor')
 // 或者 var editor=new E( document.getElementById('editor') )
 editor.create()
 </script>
</body>
</html>

2、demo如下(菜单都可以自定义)

HTML部分:

 <div id="editor">
 <p>欢迎使用 <b>wangEditor</b> 富文本编辑器</p>
 </div>

JS部分:

 <script type="text/javascript">
 var E=window.wangEditor
 var editor=new E('#editor')
 editor.create()
</script>

写到这大部分需要的功能以及都有了

我主要介绍的是上传本地图片需要注意的

下面是配置上传本地图片

// 自定义菜单配置
			editor.customConfig.menus=[
				'head', // 标题
				'bold', // 粗体
				'fontSize', // 字号
				'fontName', // 字体
				'italic', // 斜体
				'underline', // 下划线
				'strikeThrough', // 删除线
				'foreColor', // 文字颜色
				'backColor', // 背景颜色
				'link', // 插入链接
				'justify', // 对齐方式
				'quote', // 引用
				'image', // 插入图片
				'video', // 插入视频
				'code', // 插入代码
				'undo', // 撤销
				'redo' // 重复
			];
		editor.customConfig.uploadImgServer="to_uploads.php"; // 上传图片到服务器
 editor.customConfig.uploadFileName="image"; //文件名称 也就是你在后台接受的 参数值
 editor.customConfig.uploadImgHeaders={ //header头信息 
 'Accept': 'text/x-json'
 }
 // 将图片大小限制为 3M
 editor.customConfig.uploadImgMaxSize=3 * 1024 * 1024 //默认为5M
 editor.customConfig.uploadImgShowBase64=false; // 使用 base64 保存图片
 // editor.customConfig.customAlert=function (info) { //自己设置alert错误信息
 // // info 是需要提示的内容
 // alert('自定义提示:' + '图片上传失败,请重新上传')
 // };
 editor.customConfig.debug=true; //是否开启Debug 默认为false 建议开启 可以看到错误
 editor.customConfig.uploadImgTimeout=3000;
 //图片在编辑器中回显
 editor.customConfig.uploadImgHooks={ 
 error: function (xhr, editor) {
 alert("2:" + xhr + "请查看你的json格式是否正确,图片并没有上传");
 // 图片上传出错时触发 如果是这块报错 就说明文件没有上传上去,直接看自己的json信息。是否正确
 // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象
 },
 fail: function (xhr, editor, result) {
 // 如果在这出现的错误 就说明图片上传成功了 但是没有回显在编辑器中,我在这做的是在原有的json 中添加了
 // 一个url的key(参数)这个参数在 customInsert也用到
 // 
 alert("1:" + xhr + "请查看你的json格式是否正确,图片上传了,但是并没有回显");
 },
 success:function(xhr, editor, result){
 //成功 不需要alert 当然你可以使用console.log 查看自己的成功json情况 
 //console.log(result)
 console.log(result)
 },
 customInsert: function (insertImg, result, editor) {
 //console.log(result);
 // 图片上传并返回结果,自定义插入图片的事件(而不是编辑器自动插入图片!!!)
 // insertImg 是插入图片的函数,editor 是编辑器对象,result 是服务器端返回的结果
 // 举例:假如上传图片成功后,服务器端返回的是 {url:'....'} 这种格式,即可这样插入图片: 
 insertImg(result.data[0]);
 }
 };
 editor.customConfig.showLinkImg=true; //是否开启网络图片,默认开启的。
 //生成
		editor.create();	

3、其实以前这么多代码重点是:第120行

// 配置服务器端地址

4、to_uploads.php代码

<?php 
 //图片文件的生成
 $savename=date('YmdHis',time()).mt_rand(0,9999).'.jpeg';//localResizeIMG压缩后的图片都是jpeg格式
 //生成文件夹 (服务器上传图片路径地址)
 $rpath='/usr/share/nginx/html/proj/aycdj/admin';
 //获取图片文件的名字
 $fileName=$_FILES["file"]["name"];
 //图片保存的路径
 $savepath=$rpath.'/uploads/'.$savename;
 $savepath1='/uploads/'.$savename;
 //生成一个URL获取图片的地址(xxxx:服务器域名 eg:http://www.baidu.com)
 $url="xxxxx/aycdj/admin" . $savepath1;
 //返回数据。wangeditor3 需要用到的数据 json格式的
 $ret=move_uploaded_file($_FILES["image"]["tmp_name"],$savepath);
 $file_road=array('errno'=>0,'data'=>array($url));
 echo json_encode($file_road);
?>

需要注意的是:最后接口返回的数据格式必须是数组或者json格式的 ,否则报错!!

如有关于次编辑器的其他需求 可以查看官网:https://www.kancloud.cn/wangfupeng/wangeditor3/332599

大家若有其他问题,欢迎大家留言哦!

网站开发时,我们有时需要用到文章中的图片,在文章列表的标题中显示,显得图文更丰富。

在php网页中怎样把文章中所有图片地址提取出来呢?下面为你提供一个方法。直接上代码。

<?php

//这个是提取图片的核心代码

function getAllImg($str){

$pattern="/\<img src=\"(.+?)\"\>/";

preg_match_all($pattern,$str,$match);

$src=$match[1];

return $src;

}

?>

<?php

ob_start();

try {

session_start();

} catch (Exception $e) {

print $e->getMessage();

}

ini_set('display_errors','On');

//error_reporting(0);

//set_time_limit(0);//设置超时,0表示不限时

date_default_timezone_set('PRC');//中国时区

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0, minimum-scale=1.0,user-scalable=no">

<title>化州阿信</title>

</head>

<body>

<?php

//假如文章内容是$str

$str='123<img src="image/1.jpg">456<img src="image/2.jpg">789';

$arr=getAllImg ($str) ;//这是所有图片地址的集合调用时$arr[0]是第一张图片,$arr[1]是第二张图片…

print_r ($arr) ;

?>

</body>

</html>

可以复制以上代码学习测试。如果对你有帮助,请帮忙转发一下,谢谢。

何识别图片是否P过?收下这8个图片识别神器!

在这个万物皆可 PS 的时代,一张图片的真假似乎越来越难判定。例如网上突然传出来一张截图,你要怎么才知道这是真的证据,还是 PS 出来的谣言?如何快速鉴定一张图片有没有被更改过,本文就来给大家介绍 8 种可以检测图像更改的工具,来看看吧!

??EXIF/元数据

?通常来说,图片生成时是会带有 Exif 等图片信息的。例如用手机拍摄的照片。EXIF 代表可交换图像文件,它用于在使用 JPG 压缩的数码照片中存储信息。

网站链接:http://exifdata.com/index.php

EXIF 文件中包含的信息包括手机型号、相机信息,如光圈、闪光灯、ISO 编号、曝光、快门速度、镜头、分辨率、白平衡和 GPS 坐标。而用 PS 处理过的图片,也会带有 Photoshop 的软件信息。

此类数据可用于各种调查。比如调查相机类型,或者照片的 GPS 坐标来寻找某人的位置。有许多工具可用于查看 EXIF 数据,包括只需右键单击图像并转到详细信息。

当我们访问 ExifData.com 时,我们需要从计算机上传图像或提交 URL。

来自 exifdata.com 的屏幕截图

??图片加载到网站后,我们就可以在图片右侧看到详细信息摘要。点击左侧的“详细”按钮提供更多详细信息,例如文件权限、大小、GPS 坐标(如果可用)等。

??

来自 exifdata.com 的详细摘要

?

?因此,我们可以通过 Exif 信息,来判别某张图片是否是未经篡改的原图。最简单的方法,自然就是直接看文件头了。例如一张图片是在 PS 中修改过、然后保存的,那么用记事本开启这张图片,就可以在它的文件头中,找到 “Photoshop”的字样,如下图所示:

?

?

用记事本打开图片文件,有 “Photoshop”字样,说明这是一张用 PS 保存的图片

?

?能修改图片的软件不止 PS,如果是用其他软件来修改,我们还可以通过第三方软件来鉴别其 Exif,例如下面的这款 “JPEGsnoop”。

?

?JPEGsnoop 是一款免费的 Windows 应用程序,可检查和解码 JPEG、MotionJPEG AVI 和 Photoshop 文件的内部细节。它还可以用于分析图像的来源以测试其真实性。

?

网站地址?

?https://www.impulseadventure.com/photo/jpeg-snoop.html


不仅可以确定数码相机在拍摄照片时使用的各种设置(EXIF 元数据,IPTC),而且还可以提取指示相机在保存照片时使用的 JPEG 图像压缩的质量和性质的信息。每个数码相机都指定了压缩质量级别,其中许多级别大不相同,导致某些相机产生的 JPEG 图像比其他相机好得多。

JPEGsnoop 报告了大量信息,包括:量化表矩阵(色度和亮度)、色度子采样、估计 JPEG 质量设置、JPEG 分辨率设置、霍夫曼表、EXIF 元数据、Makernotes、RGB 直方图等。

如果我们要鉴定一张图片是否被修改过,可以直接将图片拖移到它的界面当中,JPEGsnoop 就会对图片的 Exif 等信息进行分析。JPEGsnoop 呈现的分析非常多,但我们只需要关注最下面的 “ASSEMSSMENT”一项,例如下图:

根据 JPEGsnoop 给出的信息,这张图片是经过处理或者编辑的,也就是说它不是原图。再看这张图,JPEGsnoop 判断它就是原图,没有经过任何 PS,可以确定为真了。

?

?

鉴别出这是原始图片

?

?反图像搜索

反向图像搜索可用于验证照片、WhatsApp 图像、屏幕截图和 Internet 来源。

记者可以使用反向搜索选项来查找图片的原始来源或了解图片首次在 Internet 上发布的大概日期 。摄影师可以使用“按图像搜索”功能了解其他未经许可使用其照片的网站 。

那么,如何执行正确的反向图像搜索?

首先,我们需要一张任何类型的照片,我们可以使用一张有问题的奥巴马照片。将照片保存至电脑,点击“上传图片”按钮,然后将该图片上传即可。接下来,单击“显示匹配图像”按钮,它会将您的照片发送到 Google、Bing 或 Yandex 的图像数据库并显示视觉上相似的照片。在这里,我们可以选择 Yandex 来演示。

Yandex 主页上,您需要选择图像,然后选择相机图标在计算机上找到保存的照片,或者也可以粘贴网址。

?

?

Yandex 主页截图

?

?

如何使用相机图标打开图像

?

?

?

?滚动浏览图像列表后,我们看到了原始图像,它向我们展示了第一张图像是经过数字修改的。因此,有时候我们需要滚动浏览一堆图像才能找到所需的内容。

?

此外,有一些有用的免费工具可以让反向图像搜索更容易。RevEye 是一个 Chrome 插件,可以搜索 Bing、Google、Yandex、TinEye 和百度。使用 RevEye,您只需右键单击图像并直接转到列表中的相应搜索引擎。

?

?

Forensically

?

网站链接:https://29a.ch/photo-forensics/#forensic-magnifier

通过 Exif 鉴别图片是否是原图,的确是行之有效的,但这种方法也有其局限,那就是它只能鉴定图片是否是原图,而不能鉴定图片内容是否保真。例如用 QQ、微信发送的图片,会被压缩过,图片内容没有被修改,但通过 Exif 鉴别,这仍属于处理过的图片,如此一来就显得意义不大了。

如果你想要鉴别图片内容是否被修改,那么直接鉴别图片的内容是更靠谱的方法。问题来了,这属于技术活,往往需要人工细细甄别,有没有更加傻瓜智能的方法?还真有,例如 Forensically 这个网站,其中很多功能,都非常方便且实用,可以帮你快速鉴定图片有没有被 P 过。

Forensically 是一款基于 Web 的免费图像分析工具,可用于检测克隆、错误级别分析、图像元数据、噪声分析、水平扫描等。错误级别分析或 ELA 用于识别 jpg 图像中不同级别的压缩伪影。

jpg 图像保存得越多,压缩得越多,因此在对其进行分析时,图像的编辑部分变得不那么均匀,因此更加明显。许多人通常认为错误级别分析是主观的,但它可以像放大镜一样帮助您识别图像中被隐藏的细节,帮助揭示真相。

  • 克隆检测:克隆检测器突出显示图像中的复制区域。这些可以很好地指示图片已被修改。
  • 错误级别分析:此工具将原始图像与重新压缩的版本进行比较。这可以使操纵区域以各种方式脱颖而出。例如,它们可以比未经处理的类似区域更暗或更亮。
  • 噪声分析:这个工具基本上是一种反向去噪算法。它不是去除噪声,而是去除图像的其余部分。它使用超级简单的可分离中值滤波器来隔离噪声。它可用于识别对图像的操作,如喷枪、变形、扭曲和透视校正克隆。它在高质量图像上效果最好。
  • PCA:此工具对图像执行主成分分析。这提供了一个不同的角度来查看图像数据,这使得发现某些操作和细节更容易。这个工具目前是单线程的,在大图像上运行时速度很慢。

首先来说说其中的 “Clone Detection”功能。顾名思义,这可以检测图片是否存在克隆现象。通常来说,修改图片时,例如去除水印、杂物等等,都会用到 PS 中的像素克隆工具,Forensically 的检测原理就在于识别图片中重复的像素,来判断这张图片有没有被像素克隆工具修改过,下图就是 Forensically 默认提供的样张。

?

?

这些红线连起来的区域,像素是一模一样的,证明经过 PS 克隆工具的涂抹

?

?在 Forensically 的鉴别结果中,白斑代表一模一样的像素,红线代表相同像素的平移路径。可以看到,图中有大面积相邻像素都是一模一样的,这就是经过克隆的痕迹,这无疑就是一张 PS 过的图片。

在下面这张龟头人的图像中,我们可以很清楚地看到它被编辑了哪个部分。

?如果我们点击右侧的 Error Level Analysis 按钮并调整滑块,我们可以很快看到海龟头部比身体的其他部分和背景更亮、更不均匀。使用 ELA,所有高对比度和低对比度边缘都应该看起来相似。如果存在巨大差异,我们就可以怀疑图像已被更改。

Forensically 中可用的另一个工具是克隆检测工具。使用此工具,可以查看已克隆图像的所有位置。此工具的准确性在很大程度上取决于滑块的位置和原始图像的质量。

我们再来看一张正常的照片:

没 P 过的图,没有集中分布的相似像素

?

?这张照片是没有经过 PS 的,在 Forensically 中尽管也鉴别出了一模一样的像素,但分布面积小且零散,因此可以认为这张图片没有被克隆工具修改过。

Forensically 的 Clone Detection 只适用于使用克隆工具修改的照片,对于其他 P 图情况,我们可以使用 Forensically 的其他工具鉴别。

例如,For ensically 的 “Error Level Analysis”功能,可以突出显示某些肉眼看上去差不多、但从计算机角度来看非常突兀的像素。例如这张示例图中的飞碟,就很显眼了,这明显就是 P 上去的。

经过一定算法处理,发现某一块像素的特征和周围的明显不同,这显然是 P 上去的图像再来看看原始拍摄未经处理的照片,可见计算机认为像素特征是均匀的,没有突兀的像素群。

未 P 过的图像,算法处理后的像素特征是相似的

?

?当然,Forensically 也是存在局限的,它的原理决定它只能适用于鉴定拍摄的照片(还不能有太多过曝之类造成的 “死像素”),对于截图或者 CG 这样的人造图像不那么适用。但无论如何,如果你想要鉴别某张照片有没有被 P 过,Forensically 仍是非常不错的辅助工具。

?

?FotoForensics

?

?网站链接:http://fotoforensics.com/

??

FotoForensics 使用先进的算法来解码任何可能的 photoshopped 图片和操作;它使用错误级别分析 (ELA) 来识别图像中处于不同压缩级别的区域。

对于 JPEG 图像,整个图像应该处于大致相同的错误级别。如果图像的某个部分处于显着不同的错误级别,则可能表明进行了数字修改。

FotoForensics 旨在简化评估过程。它像显微镜一样工作——通过突出人眼可能无法识别的伪影和细节。在拥有正确的工具和培训之间,大多数人可以快速学习如何评估图片。

FotoForensics 提供算法、用于自定进度学习的在线教程、测试知识的挑战以及帮助您入门的其他资源。

  • 错误等级分析
  • 元数据分析
  • 最后保存质量
  • 颜色调整

FotoForensics 使用一种称为“ EL?A ”的计算算法“代表错误级别分析,它以百分比显示对原始照片的边缘、纹理和表面所做的更改的修改。

由于图片直接来自相机或经过 Photoshop 处理,因此可以轻松找到嵌入在元数据中的其他重要细节。不要试图对您的私人照片进行分析,因为结果图像将保存在服务器的公共 URL 中。

在第二张图片中,您可以如何通过 ELA 识别证书的真实性,其中假邮票的亮度和边缘的错误级别会发生变化。

?

?Ghiro

?

网站链接:https://www.getghiro.org/

Ghiro 是用于数码照片和数码图像分析的开源软件。取证分析完全自动化,可以从不同角度搜索或汇总报告数据。Ghiro 旨在帮助您和您的团队分析大量图像。

错误级别分析 (ELA) :是一种旨在检测图像是否经过编辑的技术。它可以应用于压缩图像,即 JPEG 或 PNG。主要思想是原始形式的图像具有独特的压缩级别。重新保存分析的图像并计算压缩级别的差异,如果检测到差异,则编辑的可能性很高。Ghiro 计算错误级别并检测它们之间的差异。

哈希摘要生成:为图像计算最常见的哈希,以创建它的唯一标识符。计算出的哈希值为:CRC32、MD5、SHA1、SHA224、SHA256、SHA384 和 SHA512

哈希列表匹配:假设您正在搜索图像并且您只有哈希。您可以提供哈希列表并报告所有匹配的图像。

字符串提取:提取分析图像中包含的所有文本字符串,就像在 unix 字符串工具中一样。更有趣的(即 URL)被突出显示。

签名引擎:签名提供关于最关键数据的证据,以突出重点和常见的曝光。签名引擎可突出显示 120 多个签名的常见曝光。

Amped Authenticate

网站链接:https://ampedsoftware.com/authenticate

Amped Authenticate 是用于揭示图像处理历史的领先取证软件。Amped Authenticate 提供了一套强大的工具来确定图像是未经修改的原始图像、特定设备生成的原始图像还是使用照片编辑软件处理的结果,使其作为证据的可采性受到质疑。Amped Authenticate 被全球数字取证专家和情报机构使用。

Authenticate 是图像分析师根据数百篇科学论文和研究确定的最有用、最真实的应用程序身份验证过滤器和技术的集合。这些已被内置到一个易于使用但功能强大的界面中,以帮助调查人员回答围绕当今数字图像的真实性和完整性的许多问题。

当前的产品和流程专注于一种或相对较少的科学工具。Authenticate 将多个测试、程序和报告的强大功能整合到一个包中,以提高用户检测篡改图像或确定原创性的能力。

  • 检测图像中的篡改区域
  • 确定图像和文件的真实性
  • 使用批处理工具分析多个图像
  • 识别用于拍照的设备
  • 基于科学的最强大、最真实的应用程序身份验证过滤器和技术的集合


Diff Checker

网站链接:https://www.diffchecker.com/

Diff Checker 是一个有趣的工具,可以并排或重叠比较两张照片以查看它们之间的差异。此工具可用于捕捉图像的微小变化。在 Diff Checker 的主页上,我们需要上传两张图片进行比较。

DiffChecker.com 的屏幕截图

?查看更改的第一个选项是淡入淡出。淡入淡出将一个图像放在另一个顶部,并可以切换不透明度以查看图像之间的变化。

?

?

褪色

?

?该滑块选项还会将图像放在一起,但可以来回滑动到一边对其他比较。

?

?

滑块

?

?“差异”选项将两个图像放在一起并反转颜色,以便我们可以看到两张照片之间的差异。有时,使用差异功能可以捕捉到通常不会看到的细微编辑。

?

?

你的眼睛

?

有许多微妙的线索表明图像已被数字化改变。我们可以在不使用任何特殊工具的情况下看到许多更改。比如下面这个例子,你可以看到所有的人的阴影与爱因斯坦的阴影方向不一致。此外,爱因斯坦和其他男人之间的对比度和纹理是不同的,他的头发的边缘也没有很好地融合在一起。

?

?

最后给大家推荐一个网站 Start.me,里面集合了一些可以帮助分析数字照片进行验证的有用工具。大家可以试一试,看看哪些工具最适合你的具体情况。

网站链接:https://start.me/p/ZGAzN7/verification-toolset

看到这些工具集,大家是不是眼花缭乱了,其实,这些工具的功能都大同小异,我们不一定需要花哨的工具来分析数字照片,许多工具都是免费的,易于使用,而且随时可用。

数字图像分析是一个技术活,很难通过软件算法自动得出图片是否为真的结果,所以以软件算法作为辅助,再结合人的经验和你的眼睛去进行判断,还是可以大致判断出来的。希望上面的方法和技巧能帮到大家,如果有什么其他更好思路或者方法,也欢迎在留言区分享交流哦!

原文戳 https://www.uisdc.com/8-picture-detection-tools