标签: bitmap

更改Win32窗口的像素

我知道,这可能是常识,但有编辑从Windows窗口的像素的RGB值的方法C/ C++不使用库,例如OpenGLDirectX?如果有,有什么内置函数可以直接操作像素缓冲区?

c windows pixel bitmap

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

位图创建时出现Android OutOfMemory错误

我收到了错误java.lang.OutOfMemoryError: bitmap size exceeds VM budget.

创建位图以便手动绘制折线图时会发生这种情况.

width = display.getWidth() - 10;
height = width * 4 / 5;
Bitmap emptyBmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Bitmap charty = createMyGraphAndStuff(emptyBmap);
Run Code Online (Sandbox Code Playgroud)

看起来分配的总内存大约是700 Kb,这是一个不合理的数量.

我已经看到了从文件创建位图时调用的其他解决方案,但在这里我自己生成一个.如何最小化其内存占用?

这里有一些代码可以让您更好地了解它正在做什么:

public Bitmap DrawTheGraphAndStuff(Bitmap bitmap, String[] scores)
{
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
        Canvas canvas = new Canvas(output);

        drawTheGridLines(canvas);                                   

        plotTheDataPoints(canvas ,  scores ,  "the title" , 0 );    

        canvas.drawBitmap(bitmap, rect, rect, paint);

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

memory graphics android graph bitmap

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

位图toString并再次返回

在android中,我通过摄像头拍摄了一张照片,并将其恢复为活动状态:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (requestCode == Constatnts.ANSWER_TO_LIFE_UNIVERSE_AND_EVERYTHING && data != null && data.getExtras() != null && data.getExtras().get("data") != null) {  
        Bitmap snapshot = (Bitmap) data.getExtras().get("data"); 
        String convert = InputOutput.bitmapToString(this, snapshot);
        Bitmap back = InputOutput.stringToBitmap(convert);
    }  
}
Run Code Online (Sandbox Code Playgroud)

当我将Bitmap的“快照”分配给imageview时,它看起来很好,效果很好。但是,当我将Bitmap'back'分配给imageview时,它不会改变其视图。因此,转换中肯定有问题。这是我进行转换的代码:

public static Bitmap stringToBitmap(String bitmapString) {
    byte[] bytes = Base64.decode(bitmapString, Base64.DEFAULT);
    Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
    return bitmap;
}

public static String bitmapToString(Context context, Bitmap bitmap) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); …
Run Code Online (Sandbox Code Playgroud)

serialization android bitmap

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

在Android中保存JPEG文件,不会丢失像素信息

我正在通过BitmapFactory加载一个jpeg文件并尝试再次保存(后来我想在再次保存之前对像素数据进行一些计算).

但是,如果我试图保存它

FileOutputStream fos = new FileOutputStream(new File("/sdcard/test.jpg"));
originalImage.compress(Bitmap.CompressFormat.JPEG, 100, fos);
Run Code Online (Sandbox Code Playgroud)

然后它与原始图片中的结果不完全相同.某些像素具有不同的颜色值,这对我以后的计算没有用.

有可能安全无损吗?或者当我加载图片时问题已经存在

Bitmap originalImage = BitmapFactory.decodeFile("/sdcard/input.jpg");
Run Code Online (Sandbox Code Playgroud)

前几行?

java android jpeg bitmap

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

要使用getPixels大位图吗?

如果我用我的三星galaxy s2拍照,图片是3264 x 2448像素.我想对它使用颜色范围检查,但它不起作用.

但是,如果我将图片缩小,例如2500 x 2500(像素更少),那么它确实有效.但我希望使用星系s2(3264 x 2448)的图片大小.我认为这是一个记忆问题?我不完全知道限制是什么.但他们是另一种"绕过"这个问题的方法吗?

这是一段代码,我现在是怎么做的:

bmp = BitmapFactory.decodeResource(getResources(),
                R.drawable.four_colors);

int width = bmp.getWidth();
int height = bmp.getHeight();
int[] pixels = new int[width * height];

bmp.getPixels(pixels, 0, width, 0, 0, width, height);

for (int y = 0; y < height; y++){
            for (int x = 0; x < width; x++){
                     int index = y * width + x;
                     int R = (pixels[index] >> 16) & 0xff;     //bitwise shifting
                     int G = (pixels[index] >> 8) & 0xff; …
Run Code Online (Sandbox Code Playgroud)

memory android colors bitmap

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

如何用RGB_565创建位图?

实际上我正在使用以下代码打开assets文件夹中的png文件:

public static Bitmap loadImage( String imageName ){
    if( imageName.charAt(0) == '/' ) {
        imageName = imageName.substring(1);
    }
    imageName = imageName + ".png";
    Bitmap image = BitmapFactory.decodeStream(getResourceAsStream(imageName));
    return image;
}
public static InputStream getResourceAsStream( String resourceName ) {
    if( resourceName.charAt(0) == '/' ) {
        resourceName = resourceName.substring(1);
    }

    InputStream is = null;
    try {
        is = context.getAssets().open( resourceName );
    } catch (IOException e) {e.printStackTrace();}
    return is;
}
Run Code Online (Sandbox Code Playgroud)

此代码打开具有完整质量的位图,并且需要花费大量时间才能打开它.我将尝试使用RGB_565来加速位图的打开.

我应该更改为使用RGB_565打开位图的代码?如你所见,我不知道图像的宽度和高度.

此外,欢迎任何加速打开位图的过程

谢谢

android bitmap

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

'System.Drawing.Graphics.FromImage(System.Drawing.Image)'是'方法',但用作'类型'

所以,我今天刚开始使用C#,希望能够创建一个屏幕截图程序.最初,我正在考虑使用AIR来实现这一点,因为我对Web开发有很多了解.尽管如此,我还是看了这个教程(我正在尝试使用的代码).它显示了非常如何获得一个屏幕截图基础.

因此,我尝试将我在视频中看到的内容复制到C#,但是我收到以下错误:

'System.Drawing.Graphics.FromImage(System.Drawing.Image)' is a 'method' but is used like a 'type'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;

namespace ShareFastCommand {

    class Program {

        static void Main(string[] args)  {

            int left = 10, top = 10;

            int right = 20, bottom = 20;

            Bitmap    b = new Bitmap(right - left, bottom - top);

            Graphics  g = new Graphics.FromImage(b);

            Rectangle r = new Rectangle(left, top, right - left, …
Run Code Online (Sandbox Code Playgroud)

c# graphics drawing bitmap

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

如何更改32位TBitmap中特定颜色的alpha值?

当像素包含32位TBitmap的特定颜色时,我需要更改alpha分量的值,我知道要访问位图数据的ScanLine属性,但我无法弄清楚如何更改每个alpha分量像素.

delphi bitmap tbitmap

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

android回收视图删除视图中的所有位图

我有一个ViewPager在我的Kindle Fire应用程序,增加了每页大约30次Activity.添加位图后没有位图的引用(在本地语句块关闭后,vars会丢失).

删除父视图时,回收所有位图的最简单方法是什么?我需要这样做,因为在刷了几页后,我的应用程序关闭了,因为没有更多的内存可以分配,因为显然非回收的位图不会释放内存.

思考?

android memory-management bitmap recycle viewgroup

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

将位图从资源文件加载到图像

如何从资源文件加载图像bmp并将其加载到image1.Picture?我试过这个:

{$R resource.res}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
 BitMap1 : TBitMap;
begin
  BitMap1 := TBitMap.Create;
  try
    BitMap1.LoadFromResourceName(HInstance,'down');
    Image1.Picture(BitMap1);
  finally
    BitMap1.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

但是不行.谢谢!


我创建了一个文件.RC:

DOWN BMP DOWN.BMP 
Run Code Online (Sandbox Code Playgroud)

我用brcc32.exe编译:

brcc32.exe resource.rc
Run Code Online (Sandbox Code Playgroud)

我实现了资源:

{$R resource.res}
Run Code Online (Sandbox Code Playgroud)

但是找不到文件bmp.


它不起作用,总是一个错误,但我找到了另一个代码:

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   Image1.Picture.Bitmap.Handle := LoadBitmap(hInstance, 'DOWN');
end;
Run Code Online (Sandbox Code Playgroud)

但是当我点击图像消失时,为什么?谢谢

这是代码:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XPMan, ExtCtrls;

type
  TForm1 = class(TForm)
    XPManifest1: …
Run Code Online (Sandbox Code Playgroud)

delphi resources load image bitmap

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