我正在尝试编写一种方法来减少每次调用50%的图像的大小,但我发现了一个问题.有时,我最终会得到一个更大的文件大小,而图像实际上只是它的一半.我正在处理DPI和PixelFormat.我还缺少什么?
感谢您的时间.
public Bitmap ResizeBitmap(Bitmap origBitmap, int nWidth, int nHeight)
{
Bitmap newBitmap = new Bitmap(nWidth, nHeight, origBitmap.PixelFormat);
newBitmap.SetResolution(
origBitmap.HorizontalResolution,
origBitmap.VerticalResolution);
using (Graphics g = Graphics.FromImage((Image)newBitmap))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(origBitmap, 0, 0, nWidth, nHeight);
}
return newBitmap;
}
Run Code Online (Sandbox Code Playgroud)
编辑: 这是缺少的代码:
int width = (int)(bitmap.Width * 0.5f);
int height = (int)(bitmap.Height * 0.5f);
Bitmap resizedBitmap = ResizeBitmap(bitmap, width, height);
resizedBitmap.Save(newFilename);
Run Code Online (Sandbox Code Playgroud)
编辑2: 根据您的评论,这是我找到的解决方案:
private void saveAsJPEG(string savingPath, Bitmap bitmap, long quality)
{
EncoderParameter parameter = new EncoderParameter(Encoder.Compression, quality);
ImageCodecInfo encoder = …
Run Code Online (Sandbox Code Playgroud) 存储在服务器中的文件例如具有400×600像素的尺寸.但是在网站的不同部分,我们需要不同维度的相同图片.对于缩略图,我们通常需要50 X 50像素,如果我们选择下载具有原始尺寸的相同图片,则需要更长时间并且页面加载会减慢.如果调整该图片的大小,其大小将会下降得更多(例如,500 KB到50 KB).所以,我想要的是,在浏览器下载图片之前,服务器应该将图片大小调整为PHP脚本中所需的尺寸.
我试图从InputStream调整一个图像的大小,所以我在将图像加载到Bitmap对象时使用Strange内存中的代码问题,但我不知道为什么这个代码总是返回没有图像的Drawable.
这个很好用:
private Drawable decodeFile(InputStream f){
try {
InputStream in2 = new BufferedInputStream(f);
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize=2;
return new BitmapDrawable(BitmapFactory.decodeStream(in2, null, o2));
} catch (Exception e) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
这个不起作用:
private Drawable decodeFile(InputStream f){
try {
InputStream in1 = new BufferedInputStream(f);
InputStream in2 = new BufferedInputStream(f);
//Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(in1,null,o);
//The new size we want to scale to
final int IMAGE_MAX_SIZE=90;
//Find …
Run Code Online (Sandbox Code Playgroud) Universal Image Loader未在imageLoader.loadImage中应用显示图像选项这是我的代码
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.loading_image_background)
.showImageForEmptyUri(R.drawable.ic_launcher)
.showImageOnFail(R.drawable.loading_image_background)
.cacheInMemory()
.cacheOnDisc()
.bitmapConfig(Bitmap.Config.RGB_565)
.displayer(new RoundedBitmapDisplayer (20))
.build();
ImageSize targetSize = new ImageSize(50, 50);
imageLoader.loadImage(image_poster_url, targetSize, options,
new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
holder.posterImage.setImageBitmap(loadedImage);
}
});
Run Code Online (Sandbox Code Playgroud)
图像重新调整大小并在listview中完美显示.但是显示选项(圆形位图diplayer)不适用于图像.有什么建议?
我在 Firebase 中使用Resize Images扩展。在我添加这个扩展之前,我已经上传了很多图片,它们在各自的帖子/存储桶中,并通过实时数据库中的 URL 链接。
有什么方法可以调整存储桶中所有现有图像的大小?最好不必用他们的帖子重新分配他们的网址?
resize-image firebase firebase-realtime-database firebase-storage firebase-extensions
正如标题所说..如何将图像移动/重命名为新文件夹?到目前为止我有这个并且新图像被调整大小/裁剪但它不会移动到"new /"文件夹:
$in_filename = '4csrWqu9ngv.jpg';
list($width, $height) = getimagesize($in_filename);
$offset_x = 0;
$offset_y = 0;
$new_height = $height - 65;
$new_width = $width;
$image = imagecreatefromjpeg($in_filename);
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopy($new_image, $image, 0, 0, $offset_x, $offset_y, $width, $height);
header('Content-Type: image/jpeg');
imagejpeg($new_image);
$move_new = imagejpeg($new_image);
rename($move_new, 'new/' . $move_new);
Run Code Online (Sandbox Code Playgroud)
一如既往的任何帮助表示赞赏:)
我正在寻找如何在 C 中使用 libpng 调整图像大小的建议。我已经编写了一个函数,可以从结构中生成 png 图像。我想让我的图像更大:例如 1 像素扩展到 9 像素 (3x3)。有什么功能可以做到这一点吗?
我正在尝试将传入的图像(可以是任何类型,任何大小)缩放为固定的灰度图像(例如14x14)。我要做的是:
from PIL import Image
...
img = Image.open(args.picture).convert('L')
img.thumbnail( (14,14), Image.ANTIALIAS) #img.resize returns Non-Type
Run Code Online (Sandbox Code Playgroud)
但这会返回12x14而不是14x14,这显然是由于原始的宽高比。
对于任何可能的输入,我如何实现14x14?
在一个小型网站中,页面仅由使用 html 地图的单个图像和多个链接组成,我想调整图像的大小(较小的图像),但调整所有图像的大小并更改所有链接坐标是非常痛苦的。
<div style="text-align:center; width:586px; margin-left:auto; margin-right:auto;">
<img id="Image-Maps_5201110040649307" src="http://site.com/ui_prototype/login.png" usemap="#Image-Maps_5201110040649307" border="0" width="586" height="1162" alt="" />
<map id="_Image-Maps_5201110040649307" name="Image-Maps_5201110040649307">
<area shape="rect" coords="59,550,297,614" href="http://site.com/ui_prototype/main_menu.html" alt="" title="" />
</map>
</div>
Run Code Online (Sandbox Code Playgroud)
解决问题的更好方案是什么?
谢谢
正如您在图像中看到的,当我将 SVG 图像大小调整为 200X200 时,它们的质量会下降。这不是违反 SVG 图像逻辑吗?我认为无论我将 SVG 图像放大多大,它都不会被损坏。我能为它做些什么呢?我可以遵循哪种方法?
我在 SwiftUI 中调整了 SVG 图像的大小
Image(uiImage: .flame.resize(targetSize: CGSize(width: 200, height: 200)))
Run Code Online (Sandbox Code Playgroud)
我使用这段代码来调整图像大小。这不起作用。您可以在上面调整大小的图像中看到。我在这里找到了这个解决方案。 点击
extension UIImage {
func resize(targetSize: CGSize) -> UIImage {
return UIGraphicsImageRenderer(size:targetSize).image { _ in
self.draw(in: CGRect(origin: .zero, size: targetSize))
}
}
}
Run Code Online (Sandbox Code Playgroud)