标签: image-scaling

使用C#调整透明图像大小

有没有人有秘密配方来调整透明图像(主要是GIF)的大小而没有任何质量损失 - 这是怎么回事?

我尝试了很多东西,我得到的最接近的东西还不够好.

看看我的主要形象:

http://www.thewallcompany.dk/test/main.gif

然后缩放图像:

http://www.thewallcompany.dk/test/ScaledImage.gif

//Internal resize for indexed colored images
void IndexedRezise(int xSize, int ySize)
{
  BitmapData sourceData;
  BitmapData targetData;

  AdjustSizes(ref xSize, ref ySize);

  scaledBitmap = new Bitmap(xSize, ySize, bitmap.PixelFormat);
  scaledBitmap.Palette = bitmap.Palette;
  sourceData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height),
    ImageLockMode.ReadOnly, bitmap.PixelFormat);
  try
  {
    targetData = scaledBitmap.LockBits(new Rectangle(0, 0, xSize, ySize),
      ImageLockMode.WriteOnly, scaledBitmap.PixelFormat);
    try
    {
      xFactor = (Double)bitmap.Width / (Double)scaledBitmap.Width;
      yFactor = (Double)bitmap.Height / (Double)scaledBitmap.Height;
      sourceStride = sourceData.Stride;
      sourceScan0 = sourceData.Scan0;
      int targetStride = …
Run Code Online (Sandbox Code Playgroud)

.net c# resize image image-scaling

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

使用lanczos缩放图像背后的想法是什么?

我对图像缩放算法感兴趣,并实现了双线性和双三次方法.但是,我听说过lanczos和其他更复杂的方法可以实现更高质量的图像缩放,我很好奇它们是如何工作的.

有人可以在这里解释使用lanczos(放大和缩小)缩放图像背后的基本思想以及为什么它会带来更高的质量?

我确实有傅里叶分析的背景,过去曾做过一些信号处理工作,但与图像处理无关,所以不要害怕使用像"频率响应"这样的术语,如你的答案:)

编辑:我想我真正想知道的是使用卷积滤波器进行插值的概念和理论.

(注意:我已经阅读了有关lanczos重采样的维基百科文章,但它没有足够的细节供我使用)

非常感谢!

algorithm graphics image image-processing image-scaling

25
推荐指数
1
解决办法
2万
查看次数

图像缩放图片框

我在C#中出现图像缩放问题.

我有一个给定尺寸的图片框:例如宽度= 800px高度= 600px

我正在将不同的图像加载到该图片框中,小图片(400x400)和大图片(800 + x 600+)

如果他们的图片不适合盒子,我的图片会被调整大小.但它们总是调整为PictureBox的MAX宽度和高度.所以纵横比被破坏了.

任何人都可以帮助识别/解决问题吗?

类别:

Form1.cs的

ImageHandling.cs(已注释掉)

ImageUtilities.cs

例子:

问题1:我的版本
在此输入图像描述

vs原始来源 在此输入图像描述

问题2:
我的版本
在此输入图像描述

vs原始来源
在此输入图像描述

我多么想要:


在此输入图像描述

c# image image-scaling

25
推荐指数
1
解决办法
6万
查看次数

在GWT中缩放图像

改变的大小的图像在GWT部件改变所述图像元素的大小,但不重新调整屏幕上的图像.因此,以下方法不起作用:

Image image = new Image(myImageResource);
image.setHeight(newHeight);
image.setWidth(newWidth);
image.setPixelSize(newWidth, newHeight);
Run Code Online (Sandbox Code Playgroud)

这是因为GWT 通过使用CSS 将HTML 元素设置为图像来实现其Image小部件.background-image<img... />

如何让实际图像调整大小?

java gwt image-scaling

22
推荐指数
2
解决办法
3万
查看次数

以最快最简单的方式扩展BufferedImage

任务: 我有一些图像,我缩小它们,并将它们连接到一个图像.但是我对实现有一点问题:

具体问题: 我想调整大小/缩放BufferedImage.getScaledInstance方法返回一个Image对象,但我无法将其强制转换为BufferedImage:

Exception in thread "main" java.lang.ClassCastException: sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage
Run Code Online (Sandbox Code Playgroud)

(我不知道为什么它是ToolkitImage而不是Image ...)

我找到了解决方案:

Image tmp = bi.getScaledInstance(SMALL_SIZE, SMALL_SIZE, BufferedImage.SCALE_FAST);
BufferedImage buffered = new BufferedImage(SMALL_SIZE,SMALL_SIZE,BufferedImage.TYPE_INT_RGB);
buffered.getGraphics().drawImage(tmp, 0, 0, null);
Run Code Online (Sandbox Code Playgroud)

但它很慢,我认为应该有更好的方法来做到这一点.

我需要BufferedImage,因为我必须让像素加入小图像.

有更好的(更好/更快)的方式吗?

编辑: 如果我首先将Image转换为ToolkitImage,它有一个getBufferedImage()方法.但它总是返回null.你知道为什么吗?

java image image-processing image-scaling

22
推荐指数
5
解决办法
4万
查看次数

裁剪以适合svg图案

我有模式,每个模式都有一个图像.我需要将图像缩放到容器的整个宽度或高度,这些容器是路径,同时保留它们的比例.从本质上讲,如果你设置,他们需要表现得像一个HTML图像min-width:100%; min-height:100%;

我以前没有使用过很多svgs,也不知道要改变哪些属性来获得这种行为.我一直在尝试各种组合viewBox,preserveAspectRatio,patternUnits和更多,但我似乎无法得到我想要的东西.

svg image-scaling

22
推荐指数
1
解决办法
9978
查看次数

Markdown:GitHub不支持较小的图像尺寸?

我想在GitHub上的README.md中缩小我的一些图像,并且在我的Markdown编辑器中使用类似的东西工作正常

![](./images/my_img.png =400x)
Run Code Online (Sandbox Code Playgroud)

但是,当我将它上传到GitHub时,Markdown查看器似乎不喜欢它.任何建议或想法如何在不降低图像分辨率的情况下缩小图像尺寸?

markdown github image-scaling

19
推荐指数
2
解决办法
1万
查看次数

如何对图像进行高质量缩放?

我正在编写一些代码来缩放C/C++中的32位RGBA图像.我已经写过一些有些成功的尝试,但它们很慢,最重要的是尺寸图像的质量是不可接受的.

我比较了由OpenGL(即我的视频卡)和我的例程缩放的相同图像,它的质量相差几英里.我已经搜索了Google代码,搜索了我认为可以解决一些问题的源代码树(SDL,Allegro,wxWidgets,CxImage,GD,ImageMagick等),但通常他们的代码要么是错综复杂的,要么分散在各处或者是谜语汇编程序,很少或没有评论.我还阅读了维基百科和其他地方的多篇文章,我只是没有找到我需要的明确解释.我理解插值和采样的基本概念,但我很难让算法正确.我不想依赖外部库来完成一个例程,并且必须转换为它们的图像格式并返回.此外,无论如何,我想知道如何自己做.:)

我之前看过一个关于堆栈溢出问题的类似问题,但它并没有真正以这种方式回答,但我希望有人可以帮我推动我朝着正确的方向前进.也许指点我一些文章或伪代码......任何可以帮助我学习和做的事情.

这是我正在寻找的:

  1. 没有汇编程序(我正在为多种处理器类型编写非常可移植的代码).
  2. 没有外部库的依赖.
  3. 我主要关注的是缩放DOWN,但是稍后还需要编写一个扩展例程.
  4. 结果的质量和算法的清晰度是最重要的(我可以在以后优化它).

我的例程基本上采用以下形式:

DrawScaled(uint32 *src, uint32 *dst, 
      src_x, src_y, src_w, src_h, 
      dst_x, dst_y, dst_w, dst_h );
Run Code Online (Sandbox Code Playgroud)

谢谢!

更新:为了澄清,我需要一些比盒子重新采样更先进的东西用于降尺度,这会使图像模糊不清.我怀疑我想要的是某种双三次(或其他)滤波器,它与双三次升频算法有些相反(即每个目标像素都是从所有贡献的源像素计算出来的,并结合了保持锐利的加权算法.

这是我从wxWidgets BoxResample算法得到的例子与我想要的256x256位图缩放到55x55的例子.

  • www.free_image_hosting.net/uploads/1a25434e0b.png

最后:

  • www.free_image_hosting.net/uploads/eec3065e2f.png

原始的256x256图像

c c++ image-manipulation image image-scaling

18
推荐指数
1
解决办法
2万
查看次数

通过OpenGL进行图像缩放(KeepAspectRatioByExpanding)

我正在尝试仅使用glTexCoord2f()glVertex2f()实现OpenGL中的图像缩放.

让我解释一下:在加载a QImage并将其发送到gpu后,glTexImage2D()我必须根据Qt的规范执行图像缩放操作.Qt定义了这3个操作(见下图):

在此输入图像描述

我认为这是唯一的方法,因为我的应用程序是一个Qt插件,这个任务需要paint()在类的方法内完成.这项IgnoreAspectRatio操作非常简单,现在正在运作.在KeepAspectRatio最初给了我一些麻烦,但现在它也在努力.不幸的是,KeepAspectRatioByExpanding让我很头疼.

我正在分享到目前为止我所做的事情,感谢您对此问题的帮助:

main.cpp中:

#include "oglWindow.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    oglWindow w;
    w.show();
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

oglWindow.cpp:

#include "oglWindow.h"
#include "glwidget.h"

#include <QGridLayout>

oglWindow::oglWindow(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);
    GLWidget *openGL = new GLWidget(this);

    QGridLayout *layout = new QGridLayout;
    setLayout(layout);
}

oglWindow::~oglWindow()
{
}
Run Code Online (Sandbox Code Playgroud)

oglWindow.h:

#ifndef oglWindow_H …
Run Code Online (Sandbox Code Playgroud)

c c++ opengl qt image-scaling

17
推荐指数
2
解决办法
9403
查看次数

在Delphi中很好地缩放图像?

我正在使用Delphi 2009,我想缩放图像以适应可用空间.图像始终显示小于原始图像.问题是TImage Stretch属性做得不好,损害了图片的可读性.

丑陋的方式http://xrw.bc.ca/download/so/TImageStretch.gif

我希望看到它像这样缩放:

更好的方式http://xrw.bc.ca/download/so/NicerTImageStretch.png

有什么建议如何最好地做到这一点?试过JVCL,但它似乎没有这种能力.一个免费的图书馆会很好,但也许有一个低成本的图书馆,"只"这也很好.

delphi graphics timage image-scaling

15
推荐指数
3
解决办法
2万
查看次数