‘壹’ 图片放入mysql数据库是不是大小就变小了
不会吧 图片放进数据库,数据库会以二进制的方式存储它
‘贰’ ASP网页读取数据库图片自适应大小
哦,是要这个效果啊,那就这样写:
<img src="<%=rstData("Image")%>" alt="mellowparks.cn" onload="if(this.width>719)this.width=719;" id=dnn_ctr567_ViewGallery__dl_ctl00_ctl00__iImage border="0">
==================================================
去掉width和height属性就可以了吧:
<img src="<%=rstData("Image")%>" alt="mellowparks.cn" id=dnn_ctr567_ViewGallery__dl_ctl00_ctl00__iImage border="0">
‘叁’ 怎样把数据库里的图片显示到网页中,还要指定图片的大小
类文件pic_class.asp
<%
Class ImgWHInfo '获取图片宽度和高度的类,支持JPG,GIF,PNG,BMP
Dim ASO
Private Sub Class_Initialize
Set ASO=Server.CreateObject("ADODB.Stream")
ASO.Mode=3
ASO.Type=1
ASO.Open
End Sub
Private Sub Class_Terminate
Err.Clear
Set ASO=Nothing
End Sub
Private Function Bin2Str(Bin)
Dim I, Str
For I=1 To LenB(Bin)
clow=MidB(Bin,I,1)
If ASCB(clow)<128 Then
Str = Str & Chr(ASCB(clow))
Else
I=I+1
If I <= LenB(Bin) Then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
End If
Next
Bin2Str = Str
End Function
Private Function Num2Str(Num,Base,Lens)
Dim Ret
Ret = ""
While(Num>=Base)
Ret = (Num Mod Base) & Ret
Num = (Num - Num Mod Base)/Base
Wend
Num2Str = Right(String(Lens,"0") & Num & Ret,Lens)
End Function
Private Function Str2Num(Str,Base)
Dim Ret,I
Ret = 0
For I=1 To Len(Str)
Ret = Ret *base + Cint(Mid(Str,I,1))
Next
Str2Num=Ret
End Function
Private Function BinVal(Bin)
Dim Ret,I
Ret = 0
For I = LenB(Bin) To 1 Step -1
Ret = Ret *256 + AscB(MidB(Bin,I,1))
Next
BinVal=Ret
End Function
Private Function BinVal2(Bin)
Dim Ret,I
Ret = 0
For I = 1 To LenB(Bin)
Ret = Ret *256 + AscB(MidB(Bin,I,1))
Next
BinVal2=Ret
End Function
Private Function GetImageSize(filespec)
Dim bFlag
Dim Ret(3)
ASO.LoadFromFile(filespec)
bFlag=ASO.Read(3)
Select Case Hex(binVal(bFlag))
Case "4E5089":
ASO.Read(15)
ret(0)="PNG"
ret(1)=BinVal2(ASO.Read(2))
ASO.Read(2)
ret(2)=BinVal2(ASO.Read(2))
Case "464947":
ASO.read(3)
ret(0)="gif"
ret(1)=BinVal(ASO.Read(2))
ret(2)=BinVal(ASO.Read(2))
Case "535746":
ASO.read(5)
binData=ASO.Read(1)
sConv=Num2Str(ascb(binData),2 ,8)
nBits=Str2Num(left(sConv,5),2)
sConv=mid(sConv,6)
While(len(sConv)<nBits*4)
binData=ASO.Read(1)
sConv=sConv&Num2Str(AscB(binData),2 ,8)
Wend
ret(0)="SWF"
ret(1)=Int(Abs(Str2Num(Mid(sConv,1*nBits+1,nBits),2)-Str2Num(Mid(sConv,0*nBits+1,nBits),2))/20)
ret(2)=Int(Abs(Str2Num(Mid(sConv,3*nBits+1,nBits),2)-Str2Num(Mid(sConv,2*nBits+1,nBits),2))/20)
Case "FFD8FF":
Do
Do: p1=binVal(ASO.Read(1)): Loop While p1=255 And Not ASO.EOS
If p1>191 And p1<196 Then Exit Do Else ASO.read(binval2(ASO.Read(2))-2)
Do:p1=binVal(ASO.Read(1)):Loop While p1<255 And Not ASO.EOS
Loop While True
ASO.Read(3)
ret(0)="JPG"
ret(2)=binval2(ASO.Read(2))
ret(1)=binval2(ASO.Read(2))
Case Else:
If left(Bin2Str(bFlag),2)="BM" Then
ASO.Read(15)
ret(0)="BMP"
ret(1)=binval(ASO.Read(4))
ret(2)=binval(ASO.Read(4))
Else
ret(0)=""
End If
End Select
ret(3)="width=""" & ret(1) &""" height=""" & ret(2) &""""
getimagesize=ret
End Function
Public Function imgW(IMGPath)
Dim FSO,IMGFile,FileExt,Arr
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If (FSO.FileExists(IMGPath)) Then
Set IMGFile = FSO.GetFile(IMGPath)
FileExt=FSO.GetExtensionName(IMGPath)
Select Case FileExt
Case "gif","bmp","jpg","png":
Arr=GetImageSize(IMGFile.Path)
imgW = Arr(1)
End Select
Set IMGFile=Nothing
Else
imgW = 0
End If
Set FSO=Nothing
End Function
Public Function imgH(IMGPath)
Dim FSO,IMGFile,FileExt,Arr
Set FSO = server.CreateObject("Scripting.FileSystemObject")
If (FSO.FileExists(IMGPath)) Then
Set IMGFile = FSO.GetFile(IMGPath)
FileExt=FSO.GetExtensionName(IMGPath)
Select Case FileExt
Case "gif","bmp","jpg","png":
Arr=getImageSize(IMGFile.Path)
imgH = Arr(2)
End Select
Set IMGFile=Nothing
Else
imgH = 0
End If
Set FSO=Nothing
End Function
End Class
%>
/*************************
<示例 showImg.asp>
*************************/
<%
IMGPath=rs('img') '其中的rs('img')为数据库存放图片路径
Set myImg = New ImgWHInfo '调用类ImgWHInfo
W = myImg.imgW(Server.Mappath(IMGPath))
H = myImg.imgH(Server.Mappath(IMGPath))
W1=W
H1=H
if W1>0 and H1>0 then
if W1>350 then
W=350
H=H1*350/W1
else
W=W1
H=H1
end if
end if
Set myImg = Nothing
%>
<img src="<%=rs('img')%>" width="<%=W%>" height="<%=H%>">
‘肆’ 数据库取出图片等比例缩放
看你取出的是什么了,是二进制图片还是图片在服务器上存放的地址,
后者可以用程序控制,PHP里有写好的,ASP也有,看你用的什么程序了,
用JS也可以完成
<script type="text/javascript">
<!--
/*
功能:图片等比例缩放
目标:ImgTag
图片宽度:FitWidth
图片高度:FitHeight
*/
var FitWidth = 130;
var FitHeight = 110;
function ResizePic(ImgTag)
{
var image = new Image();
image.src = ImgTag.src;
if(image.width>0 && image.height>0){
if(image.width/image.height >= FitWidth/FitHeight){
if(image.width > FitWidth){
ImgTag.width = FitWidth;
ImgTag.height = (image.height*FitWidth)/image.width;
}
else{
ImgTag.width = image.width;
ImgTag.height = image.height;
}
}
else{
if(image.height > FitHeight){
ImgTag.height = FitHeight;
ImgTag.width = (image.width*FitHeight)/image.height;
}
else{
ImgTag.width = image.width;
ImgTag.height = image.height;
}
}
}
}
//-->
</script>
<img src="img/pic1.jpg" width="13px" height="10px" onload="javascript:ResizePic(this)" />
‘伍’ (DELPHI)已经存入SQLSERVER中的图片数据(image字段)太大,怎么直接在数据库中压缩或怎么用程序实现
delphi 的图像缩放示例代码如下:
//将图片缩放至指定大小
procereSizeBmp(constSource,Dest:string;constx,y:integer);
var
aBmp,bBmp:tbitmap;
scalex,scaley:real;
begin
aBmp:=TBitmap.Create;
bBmp:=TBitmap.Create;
try
aBmp.LoadFromFile(Source);
scaley:=aBmp.Height/y;
scalex:=aBmp.Width/x;
bBmp.Width:=round(aBmp.Width/scalex);
bBmp.Height:=round(aBmp.Height/scaley);
bBmp.PixelFormat:=pfDevice;
SetStretchBltMode(bBmp.Canvas.Handle,COLORONCOLOR);
StretchBlt(bBmp.Canvas.Handle,0,0,bBmp.Width,bBmp.Height,
aBmp.Canvas.Handle,0,0,aBmp.Width,aBmp.Height,src);
bBmp.SaveToFile(Dest);
finally
aBmp.Free;
bBmp.Free;
end;
end;
procereTForm1.btn1Click(Sender:TObject);
begin
SizeBmp('e:1112.bmp','e:1112_small.bmp',640,480);
end;
‘陆’ acess数据库里的图片如何变成小图片显示
在asp下,在输出显示的时候可以用replace方法替换img标签的的长宽属性的值,再输出就可以了,至于replace如何用,你网络一下就可以了,其它语言也类似的用功能一样的函数。
受之于鱼,不如受之于渔!
希望我的回答对你有所帮助,祝你好运!
‘柒’ 请问如何把数据库中的图片读出生成缩略图sql server+c#.net)
winform ? webform ?其实都差不多....不想麻烦的...还用Image绑定,只不过手动指定一个宽度就行了...
你在dataList里面应该还是用的Image控件吧。。。
直接输入一个宽度让他缩放就行了
<asp:image imageurl='<%# eval("url") %>' with="30" />
不用指定高度,图像会自动缩放到合适的百分比
那你让C#显示的时候再重新按照源图进行缩放,生成一个新图片,这样的成本会不会有点高了?
如果确实要做,你可以用Drawing类,先用
System.Drawing.Image.FromStream从数据库中取出图像,然后用Image.GetThumbnailImage 方法直接生成缩略图就行了...
‘捌’ thinkphp关于上传图片到数据库里面大小的问题
上传图片的时候,进行图片缩放:
http://document.thinkphp.cn/manual_3_2.html#image
里面写的很详细,很全
‘玖’ 怎么把图片缩小保存到数据库
MySQL、Microsoft SQL Server、Oracle等都支持 Blob 类型的字段,这种类型的字段可以存储图片,字段可以设置大小,所以你的图片也不用压缩。Blob 类型的字段不仅仅可以存储图片,同样可以存储其它的文件,你试试就知道了,我以前用 MySql 存过图片,存储读取都没问题
‘拾’ 从数据库中提取图片显示到jsp文件上时如何改变图片大小
<img src="1601851119a.jpg" height="40px" width="100px"/>