标签: bitmap

Android:将PNG ByteArray写入文件

我已经将图像文件读入ByteArray,但我怎么能把它写回来.我的意思是将ByteArray保存到文件系统中的映像文件中.PNG格式首选.

我从PNG文件到ByteArray的代码:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), mUri);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Run Code Online (Sandbox Code Playgroud)

我知道有一些类似的问题,但我找不到这个问题的确切解决方案.谢谢!!!

png android uri bytearray bitmap

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

如何将原始相机数据转换为Android上的位图

我从库函数中获取rawData了类型的原始相机数据byte[],格式为RGBA,大小为640x480,每像素4个字节.我需要将其转换为位图并在屏幕上的ImageView中显示.

我所做的是以下内容:

byte[] JPEGData = convertToJpeg(rawData, 640, 480, 80);
Bitmap bitmap = BitmapFactory.decodeByteArray(JPEGData , 0, JPEGData .length);    
imageView.setImageBitmap(bitmap);
Run Code Online (Sandbox Code Playgroud)

其中convertToJpeg()功能是:

    public static byte[] convertToJpeg(byte[] buffer, int w, int h, int quality) {
        YuvImage yuv_image = new YuvImage(buffer, ImageFormat.NV21, w, h, null);

        Rect rect = new Rect(0, 0, w, h);
        ByteArrayOutputStream output_stream = new ByteArrayOutputStream();
        yuv_image.compressToJpeg(rect, quality, output_stream);

        Bitmap sourceBmp = BitmapFactory.decodeByteArray(output_stream.toByteArray(), 0, output_stream.size());
        Bitmap destBmp = Bitmap.createScaledBitmap(sourceBmp, (int) (w * 0.75), (int) (h * 0.75), …
Run Code Online (Sandbox Code Playgroud)

android bitmap format-conversion raw-data

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

BitmapFactory中的内存不足错误

今天我的应用程序崩溃,内存不足错误.


android.graphics.BitmapFactory.nativeDecodeAsset中的java.lang.OutOfMemoryError

我只使用Bitmap Factory为我的操作栏制作了一个背景

代码:

BitmapDrawable background = new BitmapDrawable (BitmapFactory.decodeResource(getResources(), R.drawable.actionbar)); 
         background.setTileModeX(android.graphics.Shader.TileMode.REPEAT); 
         actionbar.setBackgroundDrawable(background);
Run Code Online (Sandbox Code Playgroud)

活动开始时不会发生此错误,它会在更改活动后发生.

有人可以告诉我如何解决这个问题

编辑编辑

以下是开发人员控制台中的错误消息:

java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3838)
at android.view.View.performClick(View.java:4475)
at android.view.View$PerformClick.run(View.java:18786)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.view.View$1.onClick(View.java:3833)
... 11 more
Caused by: java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:596)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:832)
at android.content.res.Resources.loadDrawable(Resources.java:2988)
at …
Run Code Online (Sandbox Code Playgroud)

android bitmap bitmapfactory

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

从位图读取RGB - 错误的值(RGB); C++

我想从BMP文件中读取所有像素的RGB值.我有c ++代码,看起来像:

#include <iostream>
#include <fstream>

using namespace std;

int main () {
    FILE *streamIn;
    streamIn = fopen("./Untitled.bmp", "r");
    if (streamIn == (FILE *)0) {
        printf("File opening error ocurred. Exiting program.\n");
        return 0;
    }

    unsigned char info[54];
    fread(info, sizeof(unsigned char), 54, streamIn);

    int width = *(int*)&info[18];
    int height = *(int*)&info[22];

    int image[width*height][3];
    int i = 0;

    for(i=0;i<width*height;i++) {
        image[i][2] = getc(streamIn);
        image[i][1] = getc(streamIn);
        image[i][0] = getc(streamIn);
        printf("pixel %d : [%d,%d,%d]\n",i+1,image[i][0],image[i][1],image[i][2]);
    }

    fclose(streamIn);

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

和这样的图像(网格重叠):

6x12像素位图文件,白色和黑色 -  24位格式

这是6x12像素的文件,有两种颜色 - 黑色和白色. …

c++ rgb image bitmap

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

org.mapsforge.core.graphics.Bitmap和android.graphics.Bitmap之间的任何关系方法

我是mapforge的新手,想要显示我的自定义标记(从sdcard读取)并在mapforge上显示离线map.problem我面临的是不知道如何将我的android.graphics.Bitmap obj转换为org.mapsforge.core.graphics .Bitmap obj

Bitmap userImg = TrafficBeatHelper.getUserImg(context, userId); // get android.graphics.Bitmap file from sdcard
LatLong userLatLong = TrafficBeatHelper.getLatLong(cache.getSharedPrefValue(SharedPrefContstant.USER_CURRENT_LATITUDE),cache.getSharedPrefValue(SharedPrefContstant.USER_CURRENT_LONGITUDE)); // get user location
//  Marker userImgMarker = new Marker(userLatLong, userImg, 0, 0);
Run Code Online (Sandbox Code Playgroud)

任何人都有任何其他选择,请提前分享txs.

java android bitmap mapsforge

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

Android,使用带有Glide库的BitmapPool

我在我的应用程序中使用滑动库来显示位图(来自资产和来自url).它运作良好,但我得到了回忆问题因为我在每个活动中显示了很多图像.我看到我可以使用BitmapPool中的clearMemory(),但我不知道如何调用它.

有人知道怎么称呼它吗?

谢谢

android bitmap android-glide

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

AndEngine Loading Graphics:我在哪里放置我的资源文件夹和我的资源?

在使用Android Studio的AndEngine创建游戏时,我将我的资源文件夹放在项目的根级别.我还在它下面创建了一个名为gfx的文件夹,并将我的splash.png放在那里.

当我调用启动画面时:

 public void loadSplashScreen()
{
    BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
    splashTextureAtlas = new BitmapTextureAtlas(activity.getTextureManager(), 390, 534, TextureOptions.BILINEAR);
    splash_region = BitmapTextureAtlasTextureRegionFactory.createFromAsset(splashTextureAtlas, activity, "splash.png", 0, 0);
    splashTextureAtlas.load();
}
Run Code Online (Sandbox Code Playgroud)

这是产生的错误

我把东西放在错误的地方吗?资产应该在哪里?

     E/AndEngine? Failed loading Bitmap in AssetBitmapTextureAtlasSource. AssetPath: gfx/splash.png
    java.io.FileNotFoundException: gfx/splash.png
            at android.content.res.AssetManager.openAsset(Native Method)
            at android.content.res.AssetManager.open(AssetManager.java:316)
            at android.content.res.AssetManager.open(AssetManager.java:290)
            at org.andengine.opengl.texture.atlas.bitmap.source.AssetBitmapTextureAtlasSource.create(AssetBitmapTextureAtlasSource.java:52)
            at org.andengine.opengl.texture.atlas.bitmap.source.AssetBitmapTextureAtlasSource.create(AssetBitmapTextureAtlasSource.java:43)
            at org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory.createFromAsset(BitmapTextureAtlasTextureRegionFactory.java:86)
            at org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory.createFromAsset(BitmapTextureAtlasTextureRegionFactory.java:82)
            at com.waylonhuang.game.ResourcesManager.loadSplashScreen(ResourcesManager.java:68)
            at com.waylonhuang.game.SceneManager.createSplashScene(SceneManager.java:93)
            at com.waylonhuang.game.GameActivity.onCreateScene(GameActivity.java:62)
            at org.andengine.ui.activity.BaseGameActivity$3.onCreateResourcesFinished(BaseGameActivity.java:171)
            at com.waylonhuang.game.GameActivity.onCreateResources(GameActivity.java:45)
            at org.andengine.ui.activity.BaseGameActivity.onCreateGame(BaseGameActivity.java:183)
            at org.andengine.ui.activity.BaseGameActivity.onSurfaceCreated(BaseGameActivity.java:112)
            at org.andengine.opengl.view.EngineRenderer.onSurfaceCreated(EngineRenderer.java:80)
            at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1501)
            at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
01-17 16:48:21.329  30718-30749/com.waylonhuang.game E/AndEngine? Failed loading Bitmap in AssetBitmapTextureAtlasSource. …
Run Code Online (Sandbox Code Playgroud)

java oop android bitmap android-studio

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

将BitMap转换为字符串而不换行?

在某处我找到了将BitMap转换为字符串的代码:

function Base64FromBitmap(Bitmap: TBitmap): string;
var
  Input: TBytesStream;
  Output: TStringStream;
begin
  Input := TBytesStream.Create;
  try
    Bitmap.SaveToStream(Input);
    Input.Position := 0;
    Output := TStringStream.Create('', TEncoding.ASCII);
    try
      Soap.EncdDecd.EncodeStream(Input, Output);
      Result := Output.DataString;
    finally
      Output.Free;
    end;
  finally
    Input.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

但是,这会给回一块包裹的线条.是否可以获得一条没有换行符的单行?

delphi encode bitmap delphi-xe7

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

使用意图避免失败的BINDER TRANSACTION错误

在我的Costum相机应用中,我需要将位图和Uri从一项活动转移到另一项活动。由于某种原因,我在大多数手机上都收到了失败的绑定交易错误(我在较新的手机上收到了错误,但在Nexus4和Galaxy3上却没有收到)。即使我仅尝试通过意图传输位图,我也会遇到相同的错误(我也尝试仅传输Uri并收到错误)。从我在线阅读的内容来看,该错误来自内存问题,但我不知道如何解决。我将不胜感激。

我的第一个活动:

...

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            tv.setVisibility(View.INVISIBLE);
            btn.setVisibility(View.INVISIBLE);
            selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);
            System.out.println("Image Path : " + selectedImagePath);

            img.setImageURI(selectedImageUri);
            ok.setVisibility(View.VISIBLE);
        }
    }
}

public String getPath(Uri uri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if(v.getId()==btn.getId()) …
Run Code Online (Sandbox Code Playgroud)

java android uri bitmap android-intent

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

在android中从URL加载Bitmap到ImageView

我使用以下方法从URL检索位图并将其传递给imageview,但imageview没有更新.

 public static Bitmap LoadImageFromWebOperations(String url) {
    Bitmap bitmap;
    try {
        InputStream is = new URL(url).openStream();
       bitmap = BitmapFactory.decodeStream(is);
        return bitmap;
    } catch (Exception e) {
         return null;
    }
Run Code Online (Sandbox Code Playgroud)

电话 -

  mov1_poster.setImageBitmap(VPmovies.LoadImageFromWebOperations(mov_details[0][7]));
//doesn't work

  Toast.makeText(this,"url is \n"+mov_details[0][7],Toast.LENGTH_LONG).show();
   // shows the url of the image successfully (just to check the url is not null)
Run Code Online (Sandbox Code Playgroud)

我有什么问题吗?请帮忙.

url android bitmap bitmapfactory

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