例如,如果我需要填充宽度为100px,高度为50px的边界框,则以下输入图像将具有以下行为:
200w x 200h缩小50%,25%从顶部和底部切断.
200w x 100h缩小50%,没有裁剪.
100w x 200h得分未缩放,但75px从顶部和底部切断.
这似乎是一个常见的调整大小功能,但我无法追踪算法的一个例子.
将接受任何语言的答案,包括伪代码.带答案的页面链接也很棒!
我有非常大的图像(jpg),我想写一个csharp程序来循环文件,并将每个图像的大小减少75%.
我试过这个:
Image thumbNail = image.GetThumbnailImage(800, 600, null, new IntPtr());
Run Code Online (Sandbox Code Playgroud)
但文件大小仍然很大.
反正有没有创建缩略图并且文件大小更小?
我想知道我们是否可以调整图像大小.假设我们想要在黑莓屏幕上绘制尺寸为100 x 100的200x200实际尺寸的图像.
谢谢
对于我的问题,我在Github上准备了一个非常简单的测试应用程序。
为简单起见,我删除了浮动,滚动约束和边缘效果(在我的实际应用中效果很好):
因此,我的测试应用程序中的自定义视图仅支持滚动:
mGestureDetector = new GestureDetector(context,
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float dX, float dY) {
mBoardScrollX -= dX;
mBoardScrollY -= dY;
ViewCompat.postInvalidateOnAnimation(MyView.this);
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
并用2根手指捏住变焦(但焦点已断开!):
mScaleDetector = new ScaleGestureDetector(context,
new ScaleGestureDetector.SimpleOnScaleGestureListener() {
@Override
public boolean onScale(ScaleGestureDetector scaleDetector) {
float focusX = scaleDetector.getFocusX();
float focusY = scaleDetector.getFocusY();
float factor = scaleDetector.getScaleFactor();
mBoardScrollX = mBoardScrollX + focusX * (1 - factor) * mBoardScale;
mBoardScrollY = mBoardScrollY + focusY * …Run Code Online (Sandbox Code Playgroud) 我上传了一个带有struts表单的文件.我将图像作为byte [],我想缩放它.
FormFile file = (FormFile) dynaform.get("file");
byte[] fileData = file.getFileData();
fileData = scale(fileData,200,200);
public byte[] scale(byte[] fileData, int width, int height) {
// TODO
}
Run Code Online (Sandbox Code Playgroud)
任何人都知道一个简单的功能吗?
public byte[] scale(byte[] fileData, int width, int height) {
ByteArrayInputStream in = new ByteArrayInputStream(fileData);
try {
BufferedImage img = ImageIO.read(in);
if(height == 0) {
height = (width * img.getHeight())/ img.getWidth();
}
if(width == 0) {
width = (height * img.getWidth())/ img.getHeight();
}
Image scaledImage = img.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage imageBuff = new BufferedImage(width, …Run Code Online (Sandbox Code Playgroud) 我想缩放图像,但我不希望图像看起来偏斜.
图像必须为115x115(长x宽).
图像的高度(长度)不能超过115像素,但如果需要,宽度可以小于115但不能超过115.
这很棘手吗?
我不知道hq2x算法的详细步骤.虽然我已经从网站下载了源代码,但我仍然无法理解源代码中的步骤.任何人都可以帮我解释一下如何逐步完成算法吗?谢谢!
我试图理解图像大小调整是如何工作的 - 请有人向我解释什么是"过滤器"有用吗?
滤镜是否计算源像素对目标像素的贡献量?
有像"盒子"和"高斯"这样的过滤器,但是有一个名为"bicubic"的过滤器吗?我在这里混合两个概念,一个是"卷积滤波器"和......?
是否可以使用相同的过滤器进行放大和缩小?(看到这个示例代码真的很棒)
首先在一个维度上拉伸图像然后在另一个维度中拉伸图像是否可取?
由于stackoverflow上没有类似帖子的答案,我发布这个...
当我在tumblr中发布TEXT帖子时,我的图像缩小了.如何使用我上传的原始照片的HI-RES?
在模板中我只看到这个,没有提示照片尺寸:
{block:Text}
<section class="content">
{block:Title}
<h1>{Title}</h1>
{/block:Title}
{Body}
</section>
{/block:Text}
Run Code Online (Sandbox Code Playgroud)
官方文档也没有帮助:http://www.tumblr.com/docs/en/custom_themes#text-posts
请参见:https://dl.dropbox.com/u/14710157/scale.jpg
有任何想法吗?
非常感谢,rainer
我的目标是通过缩小图像来提高网站的性能。
当我显示 NetworkImages 时,它们总是渲染完整的源图像分辨率(例如 7000x4667 像素)。小部件本身大多具有较小的尺寸(例如 200x200 像素)。我有图像 url,并且希望在将 7000x4667 像素图像加载到 NetworkImage 小部件中之前将其缩放到 200x200。
我已经尝试过的是这个问题的答案:
Flutter - Resize network image
这确实适用于 mobil 的 flutter,但不适用于 flutter web,因为线路在 flutter web 中ByteData originalByteData = await originalUiImage.toByteData();返回null。
已经预先非常感谢您的帮助。
image-scaling ×10
image ×4
c# ×2
graphics ×2
2d ×1
algorithm ×1
android ×1
asp.net ×1
blackberry ×1
cg ×1
drawing ×1
file ×1
flutter ×1
flutter-web ×1
image-size ×1
java ×1
pinchzoom ×1
scaling ×1
size ×1
tumblr ×1