标签: image-scaling

如何在ImageView中缩放图像以保持纵横比

在Android中,我所定义的ImageViewlayout_widthfill_parent(可能需要在电话的全宽).

如果我放的图像ImageView大于layout_width,那么Android会缩放它,对吧?但身高呢?当Android缩放图像时,它会保持纵横比吗?

我发现,ImageView当Android缩放比图像大的图像时,顶部和底部有一些空白区域ImageView.真的吗?如果是,我该如何消除那个空白区?

android image-scaling android-imageview

501
推荐指数
12
解决办法
58万
查看次数

高质量图像缩放库

我想在C#中缩放图像,其质量水平与Photoshop一样好.有没有可用的C#图像处理库来做这件事?

c# image-manipulation image image-processing image-scaling

141
推荐指数
5
解决办法
13万
查看次数

调整图像大小而不会丢失任何质量

我需要调整图像大小,但图像质量不会受此影响.

c# image image-scaling

107
推荐指数
4
解决办法
17万
查看次数

HTML img缩放

我正在尝试使用HTML img标签显示一些大图像.此刻他们离开了屏幕的边缘; 如何缩放它们以保持在浏览器窗口内?

或者在可能发生这种情况的情况下,是否有可能至少说"以正常宽度和高度的50%显示此图像"?

宽度和高度属性会扭曲图像 - 据我所知,这是因为它们指的是容器最终可能出现的任何属性,这与图像无关.我无法指定像素,因为我必须处理每个具有不同像素大小的大量图像.最大宽度不起作用.

html image-scaling

103
推荐指数
5
解决办法
36万
查看次数

c#图像调整大小到不同大小,同时保留纵横比

我正在尝试调整图像大小,同时保留原始图像的宽高比,这样新图像看起来不会被压扁.

例如:

将150*100图像转换为150*150图像.
高度的额外50个像素需要用白色背景颜色填充.

这是我正在使用的当前代码.

它适用于调整大小,但更改原始图像的宽高比会压缩新图像.

private void resizeImage(string path, string originalFilename, 
                         int width, int height)
    {
        Image image = Image.FromFile(path + originalFilename);

        System.Drawing.Image thumbnail = new Bitmap(width, height);
        System.Drawing.Graphics graphic = 
                     System.Drawing.Graphics.FromImage(thumbnail);

        graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
        graphic.SmoothingMode = SmoothingMode.HighQuality;
        graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
        graphic.CompositingQuality = CompositingQuality.HighQuality;

        graphic.DrawImage(image, 0, 0, width, height);

        System.Drawing.Imaging.ImageCodecInfo[] info =
                         ImageCodecInfo.GetImageEncoders();
        EncoderParameters encoderParameters;
        encoderParameters = new EncoderParameters(1);
        encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality,
                         100L);            
        thumbnail.Save(path + width + "." + originalFilename, info[1], 
                         encoderParameters);
    }
Run Code Online (Sandbox Code Playgroud)

编辑:我想填充图像而不是裁剪

c# system.drawing image-processing image-scaling

77
推荐指数
8
解决办法
15万
查看次数

Android ImageView缩小图像到宽度,灵活高度,无裁剪或失真

经常被问到,从来没有回答过(至少不是以可重复的方式).

我有一个图像视图,其图像小于视图.我想将图像缩放到屏幕的宽度,并调整ImageView的高度以反映图像的比例正确高度.

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
/>
Run Code Online (Sandbox Code Playgroud)

这导致图像以其原始尺寸(小于屏幕宽度)为中心,边缘为边缘.不好.

所以我补充道

android:adjustViewBounds="true" 
Run Code Online (Sandbox Code Playgroud)

同样的效果,没有好处.我补充道

android:scaleType="centerInside"
Run Code Online (Sandbox Code Playgroud)

同样的效果,没有好处.我换centerInsidefitCenter.同样的效果,没有好处.我换centerInsidecenterCrop.

android:scaleType="centerCrop"
Run Code Online (Sandbox Code Playgroud)

现在,最后,图像缩放到屏幕的宽度 - 但在顶部和底部裁剪!所以我改变了centerCropfitXY.

android:scaleType="fitXY"
Run Code Online (Sandbox Code Playgroud)

现在,图像缩放到屏幕的宽度,但没有在y轴上缩放,导致图像失真.

删除android:adjustViewBounds="true"无效.android:layout_gravity如其他地方所建议的,添加一个也没有效果.

我尝试过其他组合 - 无济于事.所以,请有人知道:

如何设置ImageView的XML来填充屏幕的宽度,缩放较小的图像以填充整个视图,显示具有宽高比的图像而不会失真或裁剪?

编辑:我也尝试设置任意数字高度.这仅对centerCrop设置有影响.它会根据视图高度垂直扭曲图像.

android imageview image-scaling

77
推荐指数
5
解决办法
8万
查看次数

如何缩放BufferedImage

在javadocs之后,我试图扩展一个BufferedImage没有成功的是我的代码:

BufferedImage image = MatrixToImageWriter.getBufferedImage(encoded);
Graphics2D grph = image.createGraphics();
grph.scale(2.0, 2.0);
grph.dispose();
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么它不起作用,有什么帮助吗?

java bufferedimage image image-processing image-scaling

42
推荐指数
6
解决办法
10万
查看次数

在asp.net中调整图像大小而不会丢失图像质量

我正在开发一个ASP.NET 3.5 Web应用程序,我允许我的用户上传jpeg,gif,bmp或png图像.如果上传的图片尺寸大于103 x 32,我想将上传的图片大小调整为103 x 32.我已经阅读了一些博文和文章,并且还尝试了一些代码示例,但似乎没有什么工作正常.有没有人成功做到这一点?

c# asp.net image image-scaling

35
推荐指数
2
解决办法
6万
查看次数

Python/Pillow:如何缩放图像

假设我的图像是2322像素x 4128像素.如何缩放它以使宽度和高度都小于1028px?

我将无法使用Image.resize(https://pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.Image.resize)因为这需要我给出新的宽度和高度.我打算做的是(下面的伪代码):

if (image.width or image.height) > 1028:
    if image.width > image.height:
        tn_image = image.scale(make width of image 1028)
        # since the height is less than the width and I am scaling the image
        # and making the width less than 1028px, the height will surely be
        # less than 1028px
    else: #image's height is greater than it's width
        tn_image = image.scale(make height of image 1028)
Run Code Online (Sandbox Code Playgroud)

我猜我需要使用Image.thumbnail,但根据这个例子(http://pillow.readthedocs.org/en/latest/reference/Image.html#create-thumbnails)和这个答案(如何使用PIL调整图像大小并保持其宽高比?),提供宽度和高度以创建缩略图.是否有任何功能可以采用新的宽度或新的高度(不是两者)并缩放整个图像?

python python-imaging-library image-scaling pillow

32
推荐指数
2
解决办法
5万
查看次数

有没有办法将图像作为位图加载到Glide

我正在寻找一种方法来使用位图作为Glide的输入.我甚至不确定它是否可能.这是为了调整大小的目的.Glide具有良好的图像增强功能.问题是我有资源作为位图已经加载到内存.我能找到的唯一解决方案是将图像存储到临时文件中,并将它们作为inputStream/file重新加载回Glide ..有没有更好的方法来实现?

请在回答之前..我不是在谈论Glide的输出.. .asBitmap().get()我知道.我需要帮助输入.

这是我的解决方案:

 Bitmap bitmapNew=null;
        try {
            //
            ContextWrapper cw = new ContextWrapper(ctx);
            File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
            File file=new File(directory,"temp.jpg");
            FileOutputStream fos = new FileOutputStream(file);
            bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);
            fos.close();
            //
            bitmapNew = Glide
                    .with(ctx)
                    .load(file)
                    .asBitmap()
                    .diskCacheStrategy(DiskCacheStrategy.NONE)
                    .skipMemoryCache(true)
                    .into( mActualWidth, mActualHeight - heightText)
                    .get();

            file.delete();
        } catch (Exception e) {
            Logcat.e( "File not found: " + e.getMessage());
        }
Run Code Online (Sandbox Code Playgroud)

我想避免将图像写入内部并再次加载它们.这就是为什么我要问是否有办法将输入作为位图

谢谢

android image-resizing image-scaling android-glide

28
推荐指数
7
解决办法
5万
查看次数