Image 查找运行时导入的图像的大小
我目前正在运行时从存储在XML文件中的目录加载图像,并通过WWW类将它们分配给RawImage组件。虽然这工作正常,但图像会倾斜以适应新的纹理大小 我想知道如何获得图像的原始大小或纵横比,以便我可以改变图像的大小,以适应矩形。要导入的图像大小不一,因此使用的方法需要响应导入图像的原始大小 如有任何建议,将不胜感激。[用uJS编写脚本] 谢谢你,瑞安Image 查找运行时导入的图像的大小,image,unity3d,runtime,unityscript,dimensions,Image,Unity3d,Runtime,Unityscript,Dimensions,我目前正在运行时从存储在XML文件中的目录加载图像,并通过WWW类将它们分配给RawImage组件。虽然这工作正常,但图像会倾斜以适应新的纹理大小 我想知道如何获得图像的原始大小或纵横比,以便我可以改变图像的大小,以适应矩形。要导入的图像大小不一,因此使用的方法需要响应导入图像的原始大小 如有任何建议,将不胜感激。[用uJS编写脚本] 谢谢你,瑞安 function loadContextImage(texLocation : String) { if (!imageView.activ
function loadContextImage(texLocation : String)
{
if (!imageView.activeSelf)
{
imageView.SetActive(true);
}
var wwwDirectory = "file://" + texLocation; //this will probably need to change for other OS (PC = file:/ [I think?]) - **REVISE**
var newImgTex = new Texture2D(512, 512);
while(true){
var www : WWW = new WWW(wwwDirectory);
yield www;
www.LoadImageIntoTexture(newImgTex);
if (www.isDone){
break; //if done downloading image break loop
}
}
var imageRender : UI.RawImage = imageView.GetComponent.<RawImage>();
imageRender.texture = newImgTex;
}
函数loadContextImage(texLocation:String)
{
如果(!imageView.activeSelf)
{
imageView.SetActive(true);
}
var wwwDirectory=“file://”+texLocation;//这可能需要对其他操作系统进行更改(PC=file://[我想?])-**修订**
var newImgTex=新纹理2d(512);
while(true){
var www:www=new www(wwwDirectory);
产生www;
www.LoadImageIntoTexture(newImgTex);
国际单项体育联合会(www.isDone){
break;//如果下载完图像,则中断循环
}
}
var imageRender:UI.RawImage=imageView.GetComponent.();
imageRender.texture=newImgTex;
}
如果您无法使用图像(出于任何正当理由),您可以获得纹理的宽度和高度:
WWW www = new WWW(url);
yield return www;
Texture2D tex = www.texture;
float aspectRatio = tex.height / tex.width;
rawImage.width = width;
rawImage.height = width * aspectRatio;
这应该使图像的矩形具有适当的纹理比例
如果您可以使用Image和preserveAspectRatio,那么您可以通过Unity来完成。结果不一定相同,因为它将保持长方体的尺寸,并使精灵在保持比例的同时占据同样多的空间 如果您无法使用图像(出于任何正当理由),您可以获得纹理的宽度和高度:
WWW www = new WWW(url);
yield return www;
Texture2D tex = www.texture;
float aspectRatio = tex.height / tex.width;
rawImage.width = width;
rawImage.height = width * aspectRatio;
这应该使图像的矩形具有适当的纹理比例
如果您可以使用Image和preserveAspectRatio,那么您可以通过Unity来完成。结果不一定相同,因为它将保持长方体的尺寸,并使精灵在保持比例的同时占据同样多的空间 可以使用“保留纵横比”开关吗?不要使用“unityscript”,它已被弃用。更改为c#。可能是@fafase的副本RawImage类中似乎没有保存纵横比的方法;你指的还有其他方法吗?@Joe Blow谢谢你的提示;我在这个阶段非常投入地使用uJS,但在未来的项目中肯定会使用c。您包含的重复链接似乎是指使用边界来获取标注尺寸。我认为这不适合我的使用情况,因为图像是在运行时导入的,我需要在将其分配给renderer.texture之前找到图像本身的尺寸,以确保纹理设置为适当的大小,并避免前面提到的不正确的纵横比。能否使用“保留纵横比”切换?不要使用“unityscript”,它已被弃用。更改为c#。可能是@fafase的副本RawImage类中似乎没有保存纵横比的方法;你指的还有其他方法吗?@Joe Blow谢谢你的提示;我在这个阶段非常投入地使用uJS,但在未来的项目中肯定会使用c。您包含的重复链接似乎是指使用边界来获取标注尺寸。我认为这不适合我的使用情况,因为图像是在运行时导入的,我需要在将其指定给renderer.texture之前找到图像本身的尺寸,以确保纹理设置为适当的大小,并避免前面提到的不正确的纵横比。