我正在通过wifi或移动网络通过网络发送图像以存储在服务器中并再次检索。我已经这样做了,但由于相机拍摄的图像大小,它使我的应用程序变慢,只是指出我正在打开画廊并从那里拍摄照片,而不是直接从应用程序拍摄照片。我注意到从相机和画廊拍摄的whatsapp图像已被压缩到大约。100kb。目前我的代码获取一个文件并将其转换为字节,然后发送它。这是获取文件并将其转换为字节的方法。privatevoidtoBytes(StringfilePath){try{Filefile=newFile(filePath);InputStreamis=newBufferedInputStream(newFileI
我想制作可以压缩视频的应用(视频长3秒(约5mb),我想将其压缩到2或2.5mb)。我正在使用mp4。我是压缩新手。我听说你可以使用FFmpeg或Mediacodec。我不想使用FFmpeg或任何需要付费的库。如果你可以免费使用Mediacodec,那么我想问你是否可以将视频压缩代码(解码器/编码器)和代码中可能的参数放在一起,这样我就可以理解代码的某些部分的作用。 最佳答案 我从TelegramforAndroidsourcecode实现了一个视频压缩示例应用程序.它在github上,here.
我必须使用纹理压缩,因为我的应用目前使用多达100MB的内存来处理纹理。我正在从View创建纹理,因此不可能以压缩格式创建它们。我怎样才能用ETC1/ATC/PVRTC即时压缩它们并将它们发送到gpu?我试过了:GLUtils.texImage2D(GL10.GL_TEXTURE_2D,0,ETC1.ETC1_RGB8_OES,bitmap,0);我也试过我手机支持的其他压缩格式,但纹理总是白色的。输入位图是RGB_565并且mip-maps被禁用。是否可以将位图作为纹理发送到opengles1.1,以便它在android上自动压缩,就像在pc上一样? 最佳
我正在使用一个应用程序来获取gps位置并将其绘制为位图上的圆圈然后保存以继续,因此我需要重复读取和保存文件。但不幸的是,当我保存文件并读取它时,文件在一些迭代后被损坏了......!代码:Fileoutput=newFile(tmpDirectory,"map.jpg");try{OutputStreamoutputStream=newFileOutputStream(output);bitmap.compress(Bitmap.CompressFormat.JPEG,100,outputStream);outputStream.flush();outputStream.close()
我一直在为这件事绞尽脑汁,但不太确定该怎么做。我想做的是:拍照,将其压缩为png(保持原始尺寸),然后将其保存到sdCard。我需要这样做的原因是因为我必须再次重新压缩它,然后对其进行Base64编码以便我可以将它发送到服务器。问题是1.文件太大2.我内存不足3.不确定我这样做是否正确。谢谢你的帮助这是我的代码:@OverridepublicvoidonClick(Viewbutton){switch(button.getId()){caseR.id.cameraButton:IntentcameraIntent=newIntent(MediaStore.ACTION_IMAGE_CA
在Android上,我有时会对图像执行以下操作。它永远不会超过bitmapPicture.compress行-它似乎只是坐在那里挂着。上面获取字节数的行返回40000。我从来没有看到压缩完成,也没有看到“压缩”后的任何其他输出。try{finalintCOMPRESSION_QUALITY=100;StringencodedImage;ByteArrayOutputStreambyteArrayBitmapStream=newByteArrayOutputStream();Log.e("Error","compress"+bitmapPicture.getByteCount());bi
我的应用程序是一个Wifi聊天应用程序,您可以使用它在两个Android设备之间进行通信,发送文本消息和快照相机图片。图片存储到SD卡中。我曾经有一个OutOfMemoryError在发送了几个图像后抛出,但我通过发送解决了这个问题options.inPurgeable=true;和options.inInputShareable=true;到BitmapFactory.decodeByteArray方法。这使得像素“可解除分配”,因此新图像可以使用内存。因此,错误不再存在。但是,内部存储器仍然充满图像,并出现“空间不足:手机存储空间不足”警告。该应用程序不再崩溃,但在应用程序完成后手
我有一个很大的文件(在我的例子中是zip),大小约为100MB,里面有大约15000个文件。我只需要从这个存档中快速提取一个文件。我尝试了下一个代码:finalStringzipPath="archive.zip";FileInputStreamfin=newFileInputStream(zipPath);in=newZipInputStream(fin);for(ZipEntryentry=in.getNextEntry();entry!=null;entry=in.getNextEntry()){if(entry.equals("file.name")){//unzipthise
我想问这个问题已经有一段时间了。我正在创建这个游戏,我在其中绘制了一个非常大的背景。但问题是(当然),当我向游戏中添加更多元素时,我会遇到OutOfMemory异常。我一直想问的是,压缩图像会减少堆大小分配吗?例如,我的PNG背景(像素为3000x2000)大约为1.5MB。经过一系列的PNG压缩(通过TinyPNG和PNGGauntlet等软件),背景的大小被大幅缩小到712KB。这里的压缩图像仍然与原始图像大小相同(3000x2000)。原始背景大小(1.5MB)的堆大小分配是否与压缩(712KB)相同? 最佳答案 答案是肯定的
我得到了以下输出流代码:Stringoutput_file=APP_FILE_PATH+"/AudienceSignatures/"+CaptureSignature.this.sessionNumber+".png";finalFileOutputStreamout=newFileOutputStream(newFile(output_file));nBitmap.compress(Bitmap.CompressFormat.PNG,100,out);out.flush();out.close();但看起来生成的图像不是我所期望的。如您所见,它有一些线条,我想去掉那些水平的白线。这可