我是反应原生的新手.我想要做的是在设备中放置图像并保持图像的比例.我只想做width : 100%
我搜索了如何制作它,似乎resizeMode = 'contain'对此有好处.
但是,自从我使用以来resizeMode = 'contain',图像保持垂直居中的位置,这是我不想要的.我希望它垂直顶部.
我试图使用一个插件,如react-native-fit-image,但没有运气.
我找到了图像没有自动调整大小的原因.但我仍然不知道如何制作它.
所以,我的问题是处理这种情况的最佳方法是什么?
我是否必须手动width, height为每张图片放大小?
我想要 :
反应本机测试代码:
https://snack.expo.io/ry3_W53rW
最终我要做的是:
https://jsfiddle.net/hadeath03/mb43awLr/
谢谢.
在脚本中,它从大约300x300标记下降到60x60.需要提高整体图像质量,因为它目前非常糟糕.
public static Boolean resizeImage(String sourceImg, String destImg, Integer Width, Integer Height, Integer whiteSpaceAmount)
{
BufferedImage origImage;
try
{
origImage = ImageIO.read(new File(sourceImg));
int type = origImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : origImage.getType();
int fHeight = Height;
int fWidth = Width;
int whiteSpace = Height + whiteSpaceAmount; //Formatting all to squares so don't need two whiteSpace calcs..
double aspectRatio;
//Work out the resized dimensions
if (origImage.getHeight() > origImage.getWidth()) //If the pictures height is greater than the width then scale appropriately.
{ …Run Code Online (Sandbox Code Playgroud) 我刚刚按照以下说明安装了干预图像类:http://image.intervention.io/getting_started/installation
我还在config/app.php文件中添加了这两行:
'干预\图片\ ImageServiceProvider'
'Image'=>'干预\图像\外墙\图像'
当我打开我的网站时,我收到此错误:
Class 'Intervention\Image\ImageServiceProvider' not found
Run Code Online (Sandbox Code Playgroud)
为什么这样,我现在该怎么办?
我使用asp.net mvc4和razor开发了一个Web应用程序.在我的应用程序中有一个文件上传控件来上传图像并保存在临时位置.
在保存图像之前,应将图像重新调整为特定大小,然后保存在给定的临时位置.
这是我在控制器类中使用的代码.
public class FileUploadController : Controller
{
//
// GET: /FileUpload/
public ActionResult Index()
{
return View();
}
public ActionResult FileUpload()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult FileUpload(HttpPostedFileBase uploadFile)
{
if (uploadFile.ContentLength > 0)
{
string relativePath = "~/img/" + Path.GetFileName(uploadFile.FileName);
string physicalPath = Server.MapPath(relativePath);
FileUploadModel.ResizeAndSave(relativePath, uploadFile.FileName, uploadFile.InputStream, uploadFile.ContentLength, true);
return View((object)relativePath);
}
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
这是模型类中使用的代码
public class FileUploadModel
{
[Required]
public HttpPostedFileWrapper ImageUploaded { get; set; }
public static void ResizeAndSave(string savePath, string …Run Code Online (Sandbox Code Playgroud) 是否有任何方法或外部库可以使用Lanczos(理想情况下)或至少bicubic alg 调整图像大小.Android下?(当然更快更好,但质量优先,处理时间次要)
我到目前为止所做的一切都是这样的:
Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, newWidth, newHeight, true);
Run Code Online (Sandbox Code Playgroud)
然而,它使用双线性滤波器,输出质量很差.特别是如果你想保留细节(如细线或可读文本).
有许多优秀的Java库,例如这里讨论的: Java - 调整图像大小而不会降低质量
但是它总是依赖于Java awt类java.awt.image.BufferedImage,所以它不能在Android中使用.
有没有办法如何更改Bitmap.createScaledBitmap()方法或某些库中的默认(双线性)过滤器,如Morten Nobel的lib,它能够与android.graphics.Bitmap类一起工作(或者有一些原始表示,如评论中指出的@Tron)?
我正在尝试使用Java和Scalr 3.2创建此图像的高质量缩略图

这是相关的源代码,其中THUMB_WIDTH = 77和THUMB_HEIGHT = 57
BufferedImage srcImg = ImageIO.read(new File(sourceFile));
BufferedImage dstImg = Scalr.resize(srcImg, Scalr.Method.QUALITY,
THUMB_WIDTH, THUMB_HEIGHT);
ImageIO.write(dstImg, format, new File(destFile));
Run Code Online (Sandbox Code Playgroud)
如果我使用format = "png",结果如下:

如果我使用format = "jpg",结果如下:

通过imagemagick识别,我发现JPEG的质量保存为75,完全不足以创建美观的缩略图.PNG对我来说也不好看.
以下是原始文件的标识输出和两个缩略图:
$ identify 42486_1.jpg 42486_s1.jpg 42486_s1.png
42486_1.jpg JPEG 580x435 580x435+0+0 8-bit DirectClass 50.6KB 0.000u 0:00.000
42486_s1.jpg[1] JPEG 77x58 77x58+0+0 8-bit DirectClass 2.22KB 0.000u 0:00.000
42486_s1.png[2] PNG 77x58 77x58+0+0 8-bit DirectClass 12.2KB 0.000u 0:00.000
Run Code Online (Sandbox Code Playgroud)
我想将从相机拍摄的图像压缩为png格式,使它们的尺寸更小,所以我使用这个代码:
compressedPictureFile = new File(imagePath);
Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
FileOutputStream fOut = new FileOutputStream(compressedPictureFile);
boolean compressed = bitmap.compress(Bitmap.CompressFormat.PNG, 0, fOut);
fOut.flush();
fOut.close();
Run Code Online (Sandbox Code Playgroud)
问题是compressedPictureFile实际上比原始图像(从1 Mb到6Mb)更大
我错过了什么?这是减少图像大小的最佳方法吗?
谢谢
我不得不提出这样一个简单的问题,感到愚蠢,但过去一小时我一直没有运气,无论如何找到解决方案.每个人似乎都需要做与我需要做的完全相反的事情.
我的问题是如何在调整图像大小时告诉mogrify和/或转换为不保持宽高比?对于宽度和高度,我需要图像的精确度为2,图像的比例不是1:1,这意味着一侧必须伸展.
我对答案最接近的是-extent标志,但这只是扩展了画布.我需要原始图像来填充整个事物.
我正在裁剪图像,并希望下一步调整大小.
Mat croppedimage = cropImage( image, rect );
Mat resizeimage = croppedimage.resize( any dimension ); //need to change this line
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我花了最后5个小时试图找到一种可行的方法来完成我认为非常简单的任务,如果它是我正在使用的.NET系列的早期版本:
我来到了几个处于预发布阶段或未完成阶段的图书馆.
有没有人完成上述任务而没有特别包括System.Drawing命名空间和/或为早期版本的.NET框架添加依赖项?
我最终使用System.Drawing非常烦人和令人失望的东西.如果您正在开发成千上万开发人员使用的软件,并且如果所有这些开发人员都依赖于该软件的组件,我相信,人们不能只想出一个新版本,在会议期间"甜言蜜语"展示它除了你的公开演讲技巧,而不是对你的工作嗤之以鼻,一方面自豪地高举它,另一方面,剥夺它最常用和要求的部分.
我非常兴奋地理解和欣赏 - 带有核心框架的.net的新时代 - 自从经典asp的第一天起成为一个忠诚的asp开发者 - 然而,对我来说,它只是一个不完整的产品,导致更多的挫折和失望而不是快乐.在当今内容驱动的世界中有数百万个网站,完全依赖内容管理,你不能只是说出来,"嘿,我有这种精彩,技术,更精简,更快的等等等等",但是错了,你会"管理"您的内容有一些问题..
不应该忘记,虽然,MS(和我们)对这个新的核心框架感到非常兴奋,现在是开源等,还有其他语言和框架在做MS正在做的事情,对于现在很长一段时间.
image-manipulation crop image-resizing asp.net-core-mvc asp.net-core
image-resizing ×10
java ×3
android ×2
asp.net-core ×1
bicubic ×1
bitmap ×1
c# ×1
class ×1
compression ×1
crop ×1
file-upload ×1
image ×1
imagemagick ×1
java-2d ×1
lanczos ×1
laravel ×1
mogrify ×1
opencv ×1
php ×1
razor ×1
react-native ×1
scalr ×1