标签: rescale

Java图像调整大小,保持纵横比

我有一张图片,我调整大小:

if((width != null) || (height != null))
{
    try{
        // scale image on disk
        BufferedImage originalImage = ImageIO.read(file);
        int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB
                                               : originalImage.getType();

        BufferedImage resizeImageJpg = resizeImage(originalImage, type, 200, 200);
        ImageIO.write(resizeImageJpg, "jpg", file); 

       } catch(IOException e) {
           System.out.println(e.getMessage());
       }
}
Run Code Online (Sandbox Code Playgroud)

这是我调整图像大小的方法:

private static BufferedImage resizeImage(BufferedImage originalImage, int type,
                                         Integer img_width, Integer img_height)
{
    BufferedImage resizedImage = new BufferedImage(img_width, img_height, type);
    Graphics2D g = resizedImage.createGraphics();
    g.drawImage(originalImage, 0, 0, img_width, img_height, null);
    g.dispose();

    return resizedImage;
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,我还需要保持宽高比.也就是说,我需要新的200/200图像来包含缩放的新图像.像这样的东西: …

java image rescale

63
推荐指数
3
解决办法
9万
查看次数

在高dpi Windows平台上自动重新调整应用程序?

我正在编写一个需要在高dpi Windows(192dpi而不是96dpi)上运行的Qt应用程序.

不幸的是Qt框架还没有支持high-dpi(至少在Windows上),所以我的应用程序及其所有元素看起来应该是它应该的一半.

有没有办法强制/模拟Windows自动升级此类应用程序?

windows qt highdpi rescale hdpi

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

SKLearn MinMaxScaler - 仅限比例特定列

我想使用MinMaxScaler扩展Pandas dataFrame中的一些(但不是全部)列.我该怎么做?

rescale pandas scikit-learn

12
推荐指数
2
解决办法
9600
查看次数

为负值和正值定义颜色渐变 scale_fill_gradientn()

R version 3.1.1 (2014-07-10) Platform: i386-w64-mingw32/i386 (32-bit)

我正在处理ggplot2()值从 -1 到 +1的热图。我想实现负值具有从深蓝色(-1)到浅蓝色(-0.00000001)的蓝色渐变和从浅红色(0.00000001)到深红色(1)的红色渐变。小值不应淡入白色,因为零应为白色,并且 0 和小值之间应有明显的对比度。NA 值应为灰色。

我试过了scale_fill_gradient2()scale_fill_gradientn()也用rescale().

已经讨论了一个类似的主题,但我无法解决我的问题:

是否可以在 scale_fill_gradient2() 中定义“中间”范围?

ggplot2正负值不同颜色渐变

数据(正负):

data.clean <- structure(list(`1` = c(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1
), `2` = c(-0.742791272678673, -0.637008381689233, -0.678722760290557, 
-0.374604178402531, -0.752540076766764, -0.741425721633379, -0.790950497422989, 
-0.822779886175826, -0.696227459496285, -0.698453447846652), 
`3` = c(-0.525688574069743, -0.43137330754352, -0.363377723970944, 
-0.210140400587573, -0.532475351847671, -0.587485278919413, 
-0.683607015861601, -0.630387125338536, -0.494214515339252, 
-0.566343042071197), `4` = c(-0.311771191820642, -0.320141843971631, 
-0.20021186440678, -0.0798166672550588, -0.369634479817365, 
-0.452880524911674, -0.526639098645571, -0.401771184676448, 
-0.278097123757212, -0.367096091610655), …
Run Code Online (Sandbox Code Playgroud)

plot gradient r rescale ggplot2

8
推荐指数
1
解决办法
7194
查看次数

在幂律分布之后标准化/缩放/标准化多个变量的正确方法,用于线性组合

我想将社交网络图中的一些节点指标组合成单个值,以便对节点进行排序:

in_degree + betweenness_centrality = informal_power_index

问题在于,in_degree并且betweenness_centrality在不同的尺度上进行测量,例如0-15对0-35000,并遵循幂律分布(至少绝对不是正态分布)

有没有一种很好的方法来重新调整变量,以便在确定变量时不会主导另一个变量informal_power_index

三种明显的方法是:

  • 标准化变量(减去mean和除以stddev).这似乎会破坏分布太多,隐藏长尾值和高峰值之间的巨大差异.
  • 通过减去min(variable)和除以,将变量重新调整到[0,1]范围max(variable).这似乎更接近解决问题,因为它不会改变分布的形状,但也许它不会真正解决问题?特别是手段会有所不同.
  • 通过将每个值除以来均衡均值mean(variable).这不会解决尺度上的差异,但平均值可能对比较更重要?

还有其他想法吗?

linear-equation graph normalize rescale power-law

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

skimage.transform.rescale 将数据类型从 uint8 更改为 float64

当我使用skimage.transform.rescale将图像大小缩小 40% 时,数据类型从 转换uint8float64.

我可以手动更改数据类型,但我不想在代码中进行太多手动干预。

有没有保留数据类型的重新缩放方法?我也对更改数据类型的方法持开放态度。

python types image rescale scikit-image

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

.net Drawing.Graphics.FromImage()返回空白的黑色图像

我正在尝试在asp.net中重新调整上传的jpeg

所以我去:

Image original = Image.FromStream(myPostedFile.InputStream);
int w=original.Width, h=original.Height;

using(Graphics g = Graphics.FromImage(original))
{
 g.ScaleTransform(0.5f, 0.5f); ... // e.g.
 using (Bitmap done = new Bitmap(w, h, g))
 {
  done.Save( Server.MapPath(saveas), ImageFormat.Jpeg );
  //saves blank black, though with correct width and height
 }
}
Run Code Online (Sandbox Code Playgroud)

这节省了处女黑色jpeg我给它的任何文件.虽然如果我将输入图像流立即带入done位图,它会重新压缩并保存它,如:

Image original = Image.FromStream(myPostedFile.InputStream);
using (Bitmap done = new Bitmap(original))
{
 done.Save( Server.MapPath(saveas), ImageFormat.Jpeg );
}
Run Code Online (Sandbox Code Playgroud)

我必须用g制作一些魔法吗?

upd:我试过了:

Image original = Image.FromStream(fstream);
int w=original.Width, h=original.Height;
using(Bitmap b = new Bitmap(original)) //also tried new Bitmap(w,h) …
Run Code Online (Sandbox Code Playgroud)

asp.net graphics upload system.drawing rescale

5
推荐指数
1
解决办法
5894
查看次数

缩放和加载非常大的 TIFF 文件

我有一个非常大的高分辨率地图,我想在应用程序中使用它(图像大小约为 80 mb)。

我想知道以下内容:

  • 如何以最佳方式加载此图像?我知道加载图像需要几秒钟(没关系)但我想通知用户进度。我想使用确定的模式并以某种方式JProgressBar向用户显示。这应该反映已加载的字节数或类似的内容。是否有任何图像加载方法可以提供此功能(如ImageIO.read())?
  • 由于地图具有非常高的分辨率,我想为用户提供滚动放大和缩小功能。我怎样才能以最好的方式做到这一点?我知道一个事实,BufferedImage对于这么大的文件,重新缩放标准方式需要很长时间。有没有什么有效的方法可以做到这一点?

谢谢您的意见!

亲切的问候,
埃克托·范登布恩

ps 图像将绘制在 JPanel 的画布上。


嗨,安德鲁,非常感谢您的帮助;一切都很完美,加载速度很快。如果没有您的专业知识和解释,我会一直致力于此,因此您赢得了公平公正的赏金。

我所做的是以下内容;使用 imagemagick 我创建了多个不同分辨率的图像,并且在执行开始时我只加载最小的 res。图片。其余的加载在单独的线程中,因此执行不会停止。使用您提供给我的信息,我然后在放大或缩小时使用适当的图像。我对使用瓷砖有点怀疑,因为我需要在地图上绘制自己的图像,而我在您告诉我使用的外部罐子中找不到油漆功能,所以我最终使用了一些简单的东西;当缩放或平移时,重新缩放模式设置为快速,当您不缩放或平移时,重新缩放设置为平滑以获得像素完美的图像(就像您建议的那样),但事实证明这足够快,我不”

所以再次感谢,一切正常:)

java image loading large-files rescale

5
推荐指数
1
解决办法
2261
查看次数

如何将数组缩放到另一个长度,保存 R 中的近似值

我有两个长度不同的数组

value <- c(1,1,1,4,4,4,1,1,1)
time <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
Run Code Online (Sandbox Code Playgroud)

如何调整value数组大小以使其长度与time数组相同,并保存其近似值?

approx()函数告诉我们长度不同。

我想让value数组像

value <- c(1,1,1,1,1,4,4,4,4,4,4,1,1,1,1)
time <-  c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
Run Code Online (Sandbox Code Playgroud)

所以长度相等

UPD

好的,主要目标是计算 v1 与 v2 的相关性,其中 v1 在 data.frame v1,t1 内,v2 在 data.frame v2,t2 内。

v1,t1 和 v2,t2 数据帧具有不同的长度,我们知道 t1 和 t2 的时间段相同,因此我们可以将它们重叠。

对于 t1,我们有 1,3,5,7,9,对于 t2,我们有 1,2,3,4,5,6,7,8,9,10。

问题是两个数据帧是分开但同时记录的,所以我需要缩放其中一个数据帧以覆盖另一个数据帧。然后我可以计算 v1 如何影响 v2 的相关性。

这就是为什么我需要将 v1 缩放到 t2 长度。

对不起,伙计们,我不知道如何用英语正确地写出目标。

arrays resize r scale rescale

5
推荐指数
1
解决办法
745
查看次数

使用浏览器调整大小来扩展KineticJS阶段?

最近发现了KineticJS,因为我一直在尝试将我的Flash技能转换为HTML Canvas.这是一个令人印象深刻的工具!问题:如果我使用像Bootstrap这样的前端,并且我有一个包含KineticJS生成的画布的几个div的页面,我可以将这些画布与页面上的其他内容一起扩展吗?非常感谢.

-----由于评论的字符限制,我在OP中回复.---------

你会设置它,以便有一个最大的大小,然后像浏览器缩放时一样缩放?例如,在Actionscript中我这样做是为了跟踪浏览器的大小并缩放阶段:

stageListener.onResize = function():Void {  
    // Calculate % of total allowable change for each dimension  
    var percentWScale:Number = (Stage.width - minStageWSize)/stageWResizeRange;  
    var percentHScale:Number = (Stage.height - minStageHSize)/stageHResizeRange;
    //  Test to see if the stage size is in the rescale range
    if ((Stage.width < maxStageWSize)  || (Stage.height < maxStageHSize))   {
        pfarm.stageChanged = true;
        // Calculate the scale factor for each dimension, but don't go below the minimum
        var percentHScale:Number = Math.max(minimumScale, Stage.width/1024);
        var percentVScale:Number = Math.max(minimumScale, Stage.height/768);
        //trace …
Run Code Online (Sandbox Code Playgroud)

javascript rescale responsive-design kineticjs

3
推荐指数
1
解决办法
4701
查看次数