我有一张图片,我调整大小:
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图像来包含缩放的新图像.像这样的东西: …
我正在编写一个需要在高dpi Windows(192dpi而不是96dpi)上运行的Qt应用程序.
不幸的是Qt框架还没有支持high-dpi(至少在Windows上),所以我的应用程序及其所有元素看起来应该是它应该的一半.
有没有办法强制/模拟Windows自动升级此类应用程序?
我想使用MinMaxScaler扩展Pandas dataFrame中的一些(但不是全部)列.我该怎么做?
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() 中定义“中间”范围?
数据(正负):
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) 我想将社交网络图中的一些节点指标组合成单个值,以便对节点进行排序:
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).这不会解决尺度上的差异,但平均值可能对比较更重要?还有其他想法吗?
当我使用skimage.transform.rescale将图像大小缩小 40% 时,数据类型从 转换uint8为float64.
我可以手动更改数据类型,但我不想在代码中进行太多手动干预。
有没有保留数据类型的重新缩放方法?我也对更改数据类型的方法持开放态度。
我正在尝试在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) 我有一个非常大的高分辨率地图,我想在应用程序中使用它(图像大小约为 80 mb)。
我想知道以下内容:
JProgressBar向用户显示。这应该反映已加载的字节数或类似的内容。是否有任何图像加载方法可以提供此功能(如ImageIO.read())?BufferedImage对于这么大的文件,重新缩放标准方式需要很长时间。有没有什么有效的方法可以做到这一点?谢谢您的意见!
亲切的问候,
埃克托·范登布恩
ps 图像将绘制在 JPanel 的画布上。
嗨,安德鲁,非常感谢您的帮助;一切都很完美,加载速度很快。如果没有您的专业知识和解释,我会一直致力于此,因此您赢得了公平公正的赏金。
我所做的是以下内容;使用 imagemagick 我创建了多个不同分辨率的图像,并且在执行开始时我只加载最小的 res。图片。其余的加载在单独的线程中,因此执行不会停止。使用您提供给我的信息,我然后在放大或缩小时使用适当的图像。我对使用瓷砖有点怀疑,因为我需要在地图上绘制自己的图像,而我在您告诉我使用的外部罐子中找不到油漆功能,所以我最终使用了一些简单的东西;当缩放或平移时,重新缩放模式设置为快速,当您不缩放或平移时,重新缩放设置为平滑以获得像素完美的图像(就像您建议的那样),但事实证明这足够快,我不”
所以再次感谢,一切正常:)
我有两个长度不同的数组
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 长度。
对不起,伙计们,我不知道如何用英语正确地写出目标。
最近发现了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) rescale ×10
image ×3
java ×2
r ×2
arrays ×1
asp.net ×1
ggplot2 ×1
gradient ×1
graph ×1
graphics ×1
hdpi ×1
highdpi ×1
javascript ×1
kineticjs ×1
large-files ×1
loading ×1
normalize ×1
pandas ×1
plot ×1
power-law ×1
python ×1
qt ×1
resize ×1
scale ×1
scikit-image ×1
scikit-learn ×1
types ×1
upload ×1
windows ×1