我试图以最快的速度存储大的4096x3072 SKBitmap图像。我尝试过使用PNG将它们存储为SKImage.FromBitmap(bitmap).Encode(SKEncodedImageFormat.Png, 100),但这非常慢。然后,使用问题和示例代码中的信息,我创建了一种方法,将它们存储为Tiff映像,速度要快得多,但速度仍然不够快。代码也必须在Linux上工作。这是我目前的代码:
public static class SKBitmapExtensions
{
public static void SaveToPng(this SKBitmap bitmap, stri
我正在尝试查看各种压缩质量的结果,如下所示:
private static Bitmap codec(Bitmap src, Bitmap.CompressFormat format,
int quality) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
src.compress(format, quality, os);
byte[] array = os.toByteArray();
ret
我这里有一个示例wpf应用程序,我想知道为什么BMP的加载速度比PNG快。下面是确切的设置:
- Windows 7
- Visual Studio 2013
- landscape.png, 1920x1080, 2.4mb
- landscape.bmp, 1920x1080, 5.6mb
- wpf-app, class MainWindow.xaml.cs constructor, no other code before
代码:
var sw = Stopwatch.StartNew();
var Bitmap1 = new Bitmap("landscape.bmp"
当我运行以下代码时,我会将1,5 GB的jpg图像插入到列表VideoType中,但它使用的是20GB+ Ram。我怀疑有些复制品但我不知道怎么回事?
public class VideoType
{
public int VideoTypeId { get; set; }
public List<Bitmap> Bitmaps { get; set; }
}
代码>
List<VideoType> VideoTypes = new List<VideoType>();
for (int i = 0; i < X; i++)
在我应用程序中,我有一个数据库,其中存储了我想要检索的图像.i,在BitMap中很容易检索到images.images,但问题是如何将BitMap图像转换为整数格式。
这是代码:
DataBaseClass objOfDataBaseClass=new DataBaseClass(context);
Cursor mCursor=objOfDataBaseClass.showData();//here is all data taken from dataBase
if(mCursor.moveToNext()) {
byte[] mg=null;
我有一个小程序,它接受一个Chair.jpg,并将其转换为位图。这样做的原因是为了将像素的颜色类型更改为BGR_888 (我从获得的)格式。
但是,位图为空。我相信这是因为这个原因D/skia: --- Failed to create image decoder with message 'unimplemented'。在网上看,可能是因为我需要压缩这个?我不确定。有人能帮我理解一下吗?
public class MainActivity extends AppCompatActivity {
TextView textView;
ImageView ima
作为bm.compress(Bitmap.CompressFormat.PNG, 50, out); //here 50 will not work as PNG is lossless
如何减小.png镜像大小?同样,仅仅从可绘制的外部位置来处理会使文件大小增加5到10倍吗?
Bitmap bm=BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
String extStorageDirectory = Environment.getExternalStorageDirectory().toString(
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
final int cacheSize = maxMemory / 8;
mMemoryCache = new LruCache<String, Bitmap>(cacheSize) {
@Override
protected int sizeOf(String key, Bitmap bitmap) {
// The cache size
我试图写一个方法来减少任何图像的大小,每次调用50%,但我发现了一个问题。有时,我会得到一个更大的文件大小,而图像实际上只是它的一半。我负责新闻部和PixelFormat的工作。我还少了什么?
谢谢您抽时间见我。
public Bitmap ResizeBitmap(Bitmap origBitmap, int nWidth, int nHeight)
{
Bitmap newBitmap = new Bitmap(nWidth, nHeight, origBitmap.PixelFormat);
newBitmap.SetResolution(
origBit
我想要建立一个画廊应用程序,从我的文件夹中的照片列表,并显示在一页。
我降低了图像的分辨率,这样画廊的加载速度就会更快,但仍然需要很长时间才能加载。
我认为问题在于,每次打开应用程序时,都会加载每个文件。我怎么才能解决这个问题?
我在应用程序中使用了Gridview。
我的代码:
final GridView[] grid = new GridView[1];
final File[] files = fileOps.getGoodFiles();
//this will return the array of files (images) t
在拍摄完这张照片后,我试图缩小位图的大小。我可以把它缩小到最大900 to,但我想尽可能地进一步减少它。
首先我要做的是:
public static Bitmap decodeSampledBitmapFromResource(byte[] data,
int reqWidth, int reqHeight) {
//reqWidth is 320
//reqHeight is 480
// First decode with inJustDecodeBounds=true t
这是我的用例:
ByteArray ba; // Some value is assigned here
Bitmap bitmap = BitmapFactory.decodeByteArray(ba, 0, ba.length);
由于ByteArray对象很大,所以在执行以下操作时,将在第二行抛出OutOfMemoryError异常:
BitmapFactory.decodeByteArray(ba, 0, ba.length);
已试过:
ByteArray ba; // Some value is assigned here
BitmapFactory.Options options