PHP将html内容转换为image图片

/**
	 * 将html内容转换为image图片
	 * @param $htmlcontent
	 * @param $toimagepath
	 * @author james.ou 2011-11-1
	 */
	public static function html2image($htmlcontent, $toimagepath, $toimagewidth = ‘400‘, $toimageheight = ‘300‘, $toimagetype = ‘png‘) {
		$str = $htmlcontent;
		$str = strtolower($str);
		//$str = mb_convert_encoding($str, "html-entities", "utf-8");
		//Get the original HTML string
		//Declare <h1> and </h1> arrays
		$h1_start = array();
		$h1_end = array();
		//Clear <h1> and </h1> attributes
		$str = preg_replace("/<h1[^>]*>/", "<h1>", $str);
		$str = preg_replace("/<\/h1[^>]*>/", "</h1>", $str);
		$str = preg_replace("/<h1>\s*<\/h1>/", "", $str);

		//Declare <img> arrays
		$img_pos = array();
		$imgs = array();
		//If we have images in the HTML
		if (preg_match_all("/<img[^>]*src=\"([^\"]*)\"[^>]*>/", $str, $m)) {
			//Delete the <img> tag from the text
			//since this is not plain text
			//and save the position of the image
			$nstr = $str;
			$nstr = str_replace("\r\n", "", $nstr);
			$nstr = str_replace("<h1>", "", $nstr);
			$nstr = str_replace("</h1>", "", $nstr);
			$nstr = preg_replace("/<br[^>]*>/", str_repeat(chr(1), 2), $nstr);
			$nstr = preg_replace("/<div[^>]*>/", str_repeat(chr(1), 2), $nstr);
			$nstr = preg_replace("/<\/div[^>]*>/", str_repeat(chr(1), 2), $nstr);
			$nstr = preg_replace("/<p[^>]*>/", str_repeat(chr(1), 4), $nstr);
			$nstr = preg_replace("/<\/p[^>]*>/", str_repeat(chr(1), 4), $nstr);
			$nstr = preg_replace("/<hr[^>]*>/", str_repeat(chr(1), 8), $nstr);

			foreach ($m[0] as $i => $full) {
				$img_pos[] = strpos($nstr, $full);
				$str = str_replace($full, chr(1), $str);
			}
			//Save the sources of the images
			foreach ($m[1] as $i => $src) {
				$imgs[] = $src;
			}
			//Get image resource of the source
			//according to its extension and save it in array
			foreach ($imgs as $i => $image) {
				$ext = end(explode(".", $image));
				$im = null;
				switch ($ext) {
					case "gif":
						$im = imagecreatefromgif($image);
						break;
					case "png":
						$im = imagecreatefrompng($image);
						break;
					case "jpeg":
						$im = imagecreatefromjpeg($image);
						break;
				}
				$imgs[$i] = $im;
			}
		}
		//If there is <h1> or </h1>s
		while (strpos($str, "<h1>") != false || strpos($str, "</h1>") != false) {
			while (strpos($str, "<h1>") !== false) {
				$p = strpos($str, "<h1>");
				$h1_start[] = $p;
				$str = substr($str, 0, $p) . substr($str, $p + strlen("<h1>"));
			}
			while (strpos($str, "</h1>") !== false) {
				$p = strpos($str, "</h1>");
				$h1_end[] = $p;
				$str = substr($str, 0, $p) . substr($str, $p + strlen("</h1>"));
			}
		}

  

时间: 2024-08-24 22:25:44

PHP将html内容转换为image图片的相关文章

[MVC]如何删除文章内容中的图片

1.实现代码 if (!string.IsNullOrWhiteSpace(entity.Content)) { var immgList = TextHelper.GetImgUrlList(entity.Content); var mainUrl = (Request.Url.ToString()).Replace(Request.RawUrl, ""); foreach (var item in immgList) { var filepath = item.Replace(ma

如何把PDF文件转换为JPG图片

大家有遇到需要将PDF文件转换为JPG的情况么,文档资料里面经常会有一些图片类型的内容,有的时候我们需要获取这些图片内容,但是PDF文件又是不可编辑的,那如何把PDF文件转换为JPG图片呢,跟着小编一起来试试吧!操作工具:[迅捷PDF转换器] 第一步:打开电脑进入浏览器搜索"迅捷PDF在线转换器"进入在线页面. 第二步:进入到在线页面后,找到页面内的"文档转换"并在下拉框内选择"PDF转图片",进入功能页的页面内. 第三步:进入转换的页面后,点击

Delphi RichEdit的内容保存为图片

uses RichEdit; {将RichEdit1的内容保存为图片,此函数也适合于RxRichEdit,即RichEdit: TRxRichEdit}procedure RichEditToCanvas(RichEdit: TRichEdit; Canvas: TCanvas; PixelsPerInch: Integer);varImageCanvas: TCanvas;fmt: TFormatRange;beginImageCanvas := Canvas;with fmt dobegin

从本地或者网络读取图片,并转换为Bitmap图片

在做android项目时,我们经常需要从本地或者网络读取图片,并转换为Bitmap图片,以便使用,下面是读取本地图片并转换的方法: Java代码   /** * 得到本地或者网络上的bitmap url - 网络或者本地图片的绝对路径,比如: * * A.网络路径: url="http://blog.foreverlove.us/girl2.png" ; * * B.本地路径:url="file://mnt/sdcard/photo/image.png"; * * 

1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机,打印预览

 1 新建项目 A  修改pro中的内容如下: HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets printsupport B  编写MyWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H   #include <QWidget> #include <QGraphicsScene> #include <QGraphicsLineItem>

CircleImageManager ——将图片转换为圆形图片的类

package com.kale.utils; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuffXfermode; import android.g

PHP将Base64图片转换为本地图片并保存

本文出至:新太潮流网络博客 /** * [将Base64图片转换为本地图片并保存] * @E-mial [email protected] * @TIME 2017-04-07 * @WEB http://blog.iinu.com.cn * @param [Base64] $base64_image_content [要保存的Base64] * @param [目录] $path [要保存的路径] */ function base64_image_content($base64_image_c

用JavaScript将Canvas内容转化成图片的方法

上周我们花了半天时间开发下一个准备放进Mozilla Marketplace的应用.有一个应用现在非常的火热,那就是Instagram,Facebook花了100万美元收购了它.我们也想有100万美元装到口袋里,我决定开发一个Instagram风格的应用,这篇文章了我将介绍一下如何将一张图片拷贝到canvas里,以及反过来,如何将画布内容保存成图片格式. 使用JavaScript将图片拷贝进画布 要想将图片放入画布里,我们使用canvas元素的drawImage方法: // Converts i

将HTML5 Canvas的内容保存为图片借助toDataURL实现

将HTML5 Canvas的内容保存为图片主要思想是借助Canvas自己的API - toDataURL()来实现,具体实现如下,感兴趣的朋友可以参考下哈,希望对你有所帮助 主要思想是借助Canvas自己的API - toDataURL()来实现,整个实现 HTML + JavaScript的代码很简单.  <html>  <meta http-equiv="X-UA-Compatible" content="chrome=1">  <