压缩图:
png.php
<?
$filename = "alert('jhghg6565');";
if ($filename){ //$filename可以是JS文件,也可以是字符串
//这个strlen是字符串的写法,filesize是JS文件的写法
if(file_exists($filename)){
$iFileSize = filesize($filename);
$fs = fopen($filename, "r");
$filename = fread($fs, $iFileSize);
fclose($fs);
}else{
$iFileSize = strlen($filename);
}
$iWidth = ceil(sqrt($iFileSize / 1));
$iHeight = $iWidth;
$im = imagecreatetruecolor($iWidth, $iHeight);
$i = 0;
for ($y=0;$y<$iHeight;$y++) {
for ($x=0;$x<$iWidth;$x++) {
$ord = ord($filename[$i]);
imagesetpixel($im,
$x, $y,
imagecolorallocate($im,
$ord,
$ord,
$ord
)
);
$i++;
}
}
header("Content-Type: image/png");
imagepng($im);
imagedestroy($im);
}
?>
前段加载js:
index.html
<html>
<head>
</head>
<body>
<script>
load_PNGData = function(url, Callback) {
var Xjs = new Image();
Xjs.style.position = "absolute";
Xjs.style.left = "-10000px";
document.body.appendChild(Xjs);
Xjs.onload = function() {
var iWidth = this.offsetWidth;
var iHeight = this.offsetHeight;
var oText = document.getElementById("output");
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
ctx.drawImage(this,0,0);
var oData = ctx.getImageData(0,0,iWidth,iHeight).data;
var a = [];
var len = oData.length;
var p = -1;
for (var i=0;i<len;i+=4) {
if (oData[i] > 0)
a[++p] = String.fromCharCode(oData[i]);
};
var strData = a.join("");
if (Callback) {
Callback(strData);
}
document.body.removeChild(Xjs);
}
Xjs.src = url;
}
tu = function(data){
var scr = new Blob([data],{type:"application/text"});
var script = document.createElement('script');
script.src = URL.createObjectURL(scr);
document.body.append(script);
}
load_PNGData('png.php',function(data){tu(data);});
</script>
</body>
</html>