Tag: 位图

Android:如何覆盖位图/绘制位图?

其实我有两个问题: 在位图上绘制图像还是创build一个位图作为资源然后通过位图绘制它会更好吗? performance明智…哪一个更好? 如果我想在位图上绘制透明的东西,我该如何去做呢? 如果我想叠加一个透明的位图,我该怎么做? 对不起,长长的名单,但为了学习的兴趣,我想探索两种方法…

Android以编程方式拍摄屏幕截图

首先我写一个根应用程序,所以根权限是没有问题的。 我search和search,发现了很多从未为我工作的代码,这是我拼凑到目前为止,还有一些作品。 当我说sorta我的意思是它使我/ sdcard / test.png上的图像,但该文件是0字节,显然无法查看。 public class ScreenShot extends Activity{ View content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.blank); content = findViewById(R.id.blankview); getScreen(); } private void getScreen(){ Bitmap bitmap = content.getDrawingCache(); File file = new File("/sdcard/test.png"); try { file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, ostream); ostream.close(); } catch (Exception e) { […]

Android瓷砖位图

我正在尝试在Android中加载我想要平铺的位图。 我目前在我的视图中使用以下来显示一个位图: canvas.drawBitmap(bitmap, srcRect, destRect, null) 我基本上想要在我的应用程序中使用此位图作为背景图像,并希望在X和Y方向上重复位图。 我已经看到了BitmapShader类的TileMode.REPEAT常量,但是我不确定这是否与重复他的实际位图有关,或者是否需要对位图应用filter。

如何在OpenCV中捕获桌面(即将位图转换为Mat)?

我想使用OpenCV来处理我的桌面,就好像它是一个videostream。 我熟悉OpenCV。 我不熟悉Windows API。 我意识到还有其他方法来捕获屏幕,但为了我的问题,我需要使用OpenCV来完成。 这是我的(超天真的)代码: HWND hDesktopWnd; HDC hDesktopDC; hDesktopWnd=GetDesktopWindow(); hDesktopDC=GetDC(hDesktopWnd); // get the height and width of the screen int height = GetSystemMetrics(SM_CYVIRTUALSCREEN); int width = GetSystemMetrics(SM_CXVIRTUALSCREEN); // create a bitmap HBITMAP hbDesktop = CreateCompatibleBitmap( hDesktopDC, width, height); Mat src(height,width,CV_8UC4); src.data = (uchar*)hbDesktop; imshow("output",src); //fails 🙁 在StackOverflow上也有类似的问题,但是它们是旧式的OpenCV或者Android操作系统。 我在Windows 7 64x Opencv 2.4.3 谢谢能回答这个问题的人。

Android中的位图

我有一些关于位图对象和内存及其一般分类的问题。 什么是内存或本地位图? 位图内存与堆内存有什么不同?

Android:如何旋转中心点上的位图

我一直在寻找一个解决这个问题的一天,但没有什么帮助,甚至在这里的答案。 文档也没有解释任何东西。 我只是试图在另一个对象的方向旋转。 问题是位图不是围绕固定点旋转,而是绕着位图(0,0)旋转。 这是我遇到的代码: Matrix mtx = new Matrix(); mtx.reset(); mtx.preTranslate(-centerX, -centerY); mtx.setRotate((float)direction, -centerX, -centerY); mtx.postTranslate(pivotX, pivotY); Bitmap rotatedBMP = Bitmap.createBitmap(bitmap, 0, 0, spriteWidth, spriteHeight, mtx, true); this.bitmap = rotatedBMP; 奇怪的是,我怎么改变pre / postTranslate()的值和postTranslate()的float参数setRotation() 。 有人可以帮忙,把我推向正确的方向吗? 🙂

如何正确下载图像?

背景 创build一个具有大量高质量图像的应用程序,我决定将图像缩小到所需的大小(这意味着如果图像大于屏幕,则将其缩小)。 问题 我注意到,在某些设备上,如果图像缩小,它们会变得模糊/像素化,但是在相同的设备上,对于相同的目标imageView大小,如果图像不缩小,它们看起来就好了。 我试过了 我决定进一步检查这个问题,并创build了一个小的POC应用程序来显示这个问题。 在显示你的代码之前,下面是我正在谈论的一个演示: 看到差别有点难,但是你可以看到第二个是有点像素的。 这可以显示在任何图像上。 public class MainActivity extends Activity { @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ImageView originalImageView=(ImageView)findViewById(R.id.originalImageView); final ImageView halvedImageView=(ImageView)findViewById(R.id.halvedImageView); final ImageView halvedBitmapImageView=(ImageView)findViewById(R.id.halvedBitmapImageView); // final Bitmap originalBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.test); originalImageView.setImageBitmap(originalBitmap); halvedImageView.setImageBitmap(originalBitmap); // final LayoutParams layoutParams=halvedImageView.getLayoutParams(); layoutParams.width=originalBitmap.getWidth()/2; layoutParams.height=originalBitmap.getHeight()/2; halvedImageView.setLayoutParams(layoutParams); // final Options options=new Options(); options.inSampleSize=2; // options.inDither=true; //didn't […]

高分辨率Image – OutOfMemoryError

我正在开发Galaxy S4的应用程序。 应用程序的要求之一是有一个包含1920×1080像素图像的SplashScreen。 它是一个高品质的.jpeg图像和图像的大小约2兆字节 。 问题是,一旦我启动应用程序,我得到一个OutOfMemoryError 。 我很惊讶,这已经发生在一个只有2兆字节的图像? 我怎样才能解决这个问题,并显示图像? 更改图像的尺寸或大小不是一个选项。 SplashScreen.java public class Splashscreen extends Activity { private static final int SPLASH_DURATION = 2000; private boolean isBackPressed = false; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN); super.onCreate(savedInstanceState); setContentView(R.layout.splashscreen); Handler h = new Handler(); h.postDelayed(new Runnable() { @Override public void run() { // check […]

C#“参数无效”,创build新的位图

如果我尝试创build大于19000像素的位图,则会显示以下错误:参数无效。 我该如何解决这个问题? System.Drawing.Bitmap myimage= new System.Drawing.Bitmap(20000, 20000);

System.Drawing.Image.FromFile()内存不足exception

我有一个图像上传和裁剪创build缩略图,我偶尔会得到内存溢出exception在下面的行: Dim bm As Bitmap = System.Drawing.Image.FromFile(imageFile) 错误的发生是微小的,非常罕见,但我总是想知道可能是什么原因造成的。 imageFilevariables只是一个Server.MapPath到图像的path。 我很好奇,如果有人曾经遇到这个问题,如果他们有什么想法可能会导致这个问题? 也许是图像的大小? 如果有必要,我可以发布代码和任何支持信息,但很想听听人们对此的意见。