① js中怎么把本是长方形图片压缩成梯形图片,我想做出一个立体的图片转换效果出来求各位大神指点
郭敦颙回答:
这可能是一项尚未涉及到的等差变形技术——
把本是长方形图片压缩成梯形图片,按其一半设定为正方形,等价于压缩一边为直角梯形,按对称性展开即为等边梯形了。
设正方形边长为10cm,400万像素图片,那么每边有2000个(严格说是2001个)等分点,划平行线,将图片分成400万个小方格,这小方格即为像素。每个小方格的边长则为10cm/2000=50mm/1000=50μm(微米)。
如果把最上方格宽度尺寸由50μm改为40μm向下依次递增到50μm,社会上尺度是一个等差数列,项数为2000,首项为40μm,末项为50μm。
如此变形,即可把本是长方形图片压缩成梯形图片。
在实用上可利用视线物像的大小与距离成反比(αf=ζ, α—物像尺寸,f—距离, ζ为常数)这一原理,通过照相,把图片斜放或斜照,即可将本是长方形图片改变成梯形图片了。《几何原本》一书的封面原为长方形的,通过这种摄像,封面变成了梯形。
非常遗憾的是图片不能上传了,已有十几天。此种摄像方法,你若能用得上,可自拍看看效果。
在摄影棚中的一些特技摄影,应该会有这方面的运用。
② 如何利用JS或者CSS样式来自动调整图片大小
js版和css版自动按比例调整图片大小方法,分别如下:
<title>javascript图片大小处理函数</title>
<scriptlanguage=Javascript>
varproMaxHeight=150;
varproMaxWidth=110;
functionproDownImage(ImgD){
varimage=newImage();
image.src=ImgD.src;
if(image.width>0&&image.height>0){
varrate=(proMaxWidth/image.width<proMaxHeight/image.height)?proMaxWidth/image.width:proMaxHeight/image.height;
if(rate<=1){
ImgD.width=image.width*rate;
ImgD.height=image.height*rate;
}
else{
ImgD.width=image.width;
ImgD.height=image.height;
}
}
}
</script>
</head>
<body>
<imgsrc="999.jpg"border=0width="150"height="110"onload=proDownImage(this);/>
<imgsrc="room.jpg"border=0width="150"height="110"onload=proDownImage(this);/>
</body>
纯css的防止图片撑破页面的代码,图片会自动按比例缩小:
<styletype="text/css">
.content-width{MARGIN:auto;WIDTH:600px;}
.content-widthimg{MAX-WIDTH:100%!important;HEIGHT:auto!important;width:expression(this.width>600?"600px":this.width)!important;}
</style>
<divclass="content-width">
<p><imgsrc="/down/js/images/12567247980.jpg"/></p>
<p><imgsrc="/down/js/images/12567247981.jpg"/></p>
</div>
③ js实现图片转pdf时怎么缩小体积
是如何减少pdf文件的大小吗?
除了转换PDF文件的格式外,SanPDF还可以压缩PDF文件大小。如果你需要压缩PDF文件,SanPDF“合并的PDF文件“工具是您的最佳选择。
如何免费将PDF文件大小减小到100 KB以下?
步骤如下:
1.打开浏览器 搜索SanPDF
2.转到压缩PDF文件工具。
3.选择要压缩的PDF文件。
4.等待上传PDF文件被压缩。我们将在结果页面上显示文件大小和压缩率(百分比)。
5.下载压缩的PDF文件。
希望可以帮到你鸭
④ 怎么用JavaScript在线压缩图片
主要用了两个html5的 API,一个file,一个canvas,压缩主要使用cnavas做的,file是读取文件,之后把压缩好的照片放入内存,最后内存转入表单下img.src,随着表单提交。
照片是自己用单反拍的,5M多,压缩下面3张分别是600多kb,400多kb,300kb的最后那张失真度很大了,压缩效率蛮高的。
<!DOCTYPE html>
<html><head> <meta charset="utf-8"/> <title>File API Test</title> <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> <script type="text/javascript" src="js/JIC.js"></script> <style> #test{ display: none; } </style></head><body><input type="file" id="fileImg" ><form> <img src="" id="test" alt=""></form><script> function handleFileSelect (evt) { // var filebtn = document.getElementById(id); // console.log(filebtn); // var files = filebtn.target.files; // console.log(filebtn.target); // console.log(files); var files = evt.target.files; for (var i = 0, f; f = files[i]; i++) { // Only process image files. if (!f.type.match('image.*')) { continue; } var reader = new FileReader(); // Closure to capture the file information. reader.onload = (function(theFile) { return function(e) { // Render thumbnail. // console.log(evt.target.files[0]); // console.log(e.target); console.log(e.target.result); var i = document.getElementById("test"); i.src = event.target.result; console.log($(i).width()); console.log($(i).height()); $(i).css('width',$(i).width()/10+'px'); //$(i).css('height',$(i).height()/10+'px'); console.log($(i).width()); console.log($(i).height()); var quality = 50; i.src = jic.compress(i,quality).src; console.log(i.src); i.style.display = "block"; }; })(f); // Read in the image file as a data URL. reader.readAsDataURL(f); } } document.getElementById('fileImg').addEventListener('change', handleFileSelect, false);</script></body></html>
var jic = { /** * Receives an Image Object (can be JPG OR PNG) and returns a new Image Object compressed * @param {Image} source_img_obj The source Image Object * @param {Integer} quality The output quality of Image Object * @return {Image} result_image_obj The compressed Image Object */ compress: function(source_img_obj, quality, output_format){ var mime_type = "image/jpeg"; if(output_format!=undefined && output_format=="png"){ mime_type = "image/png"; } var cvs = document.createElement('canvas'); //naturalWidth真实图片的宽度 cvs.width = source_img_obj.naturalWidth; cvs.height = source_img_obj.naturalHeight; var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0); var newImageData = cvs.toDataURL(mime_type, quality/100); var result_image_obj = new Image(); result_image_obj.src = newImageData; return result_image_obj; }, function ****(***)
⑤ jS控制图片的放大和缩小
图片按比例缩放
function DrawImage(Img,WIDTH,HEIGHT){
var image=new Image();
image.src=Img.src;
width=WIDTH;//预先设置的所期望的宽的值
height=HEIGHT;//预先设置的所期望的高的值
if(image.width>width||image.height>height){//现有图片只有宽或高超了预设值就进行js控制
w=image.width/width;
h=image.height/height;
if(w>h){//比值比较大==>宽比高大
//定下宽度为width的宽度
Img.width=width;
//以下为计算高度
Img.height=image.height/w;
}else{//高比宽大
//定下宽度为height高度
img.height=height;
//以下为计算高度
Img.width=image.width/h;
}
}
}
<img src="xxxx" onload=javascript:DrawImage(this,290,215);>
⑥ js对从服务器取得的图片进行压缩显示
浏览器前端里面跑js没办法压缩图片的,js没io,只能载入图片,无法读入真正的图片数据
⑦ 网站图片会以压缩变形来显示改怎么解决呢求高手!
这个是因为对img设置了宽度和高度。浏览器强制使用了这个尺寸,自然就变形了。
解决方法,
途径1、尽量使用与页面显示块的比例一致的图片。
途径2、如果做不到控制图片比例。则,用js获取图片实际高宽比。若图片太窄,则将图片宽度设置为页面显示块的宽度,高度自动;若太宽,则设置高度充满。页面此时要将overflow设为hidden,溢出部分不显示。也可视需要,设置居中等。
⑧ js图片轮换里如何等比例缩放图片
希望对你有帮助比例缩放图片代码如下:<script language="javascript">
function zone(){
var ben=0.5;//缩小倍数
var zone=document.getElementById("img");
var kuan=zone.width;//原图宽
var gao=zone.height;//原图高
//计算高和宽
var new_kuan=kuan*ben;
var new_gao=gao*ben;
//给id=xin的img赋值
document.getElementById("xin").src=zone.src;
document.getElementById("xin").height=new_gao;
document.getElementById("xin").w=new_kuan;
document.getElementById("gao").value=gao;//显示高
document.getElementById("kuan").value=kuan;//显示宽
}
</script> <img id="img" src="images/ad03.gif" border="0" />
<input type="button" onclick="zone();" value="获得"/>
高:<div><input type="text" id="gao" /></div>
宽:<div><input type="text" id="kuan" /></div>
显示:<img id="xin"/>
⑨ 如何使用JS等比例改变显示图片的大小
原理:
用JS在加载图片后判断图片是否突破规定的高和宽,如果超过再根据图片的宽高比例进行调整。
特别说明,JS代码只限制图片的高或者宽时,宽或者高会按照比例进行相应调整。
假如你需要把所有的图片显示在140*226的区间里面,那么就使用下面这样的代码:
<img src=2009/04/1232336585-19.jpg onload='if (this.width>140 || this.height>226) if (this.width/this.height>140/226) this.width=140; else this.height=226;'>