คำถามติดแท็ก bitmap

โครงสร้างข้อมูลสำหรับการเข้ารหัสรูปภาพเป็นชุดของบิตซึ่งแต่ละพิกเซลของภาพจะถูกจับคู่กับบิตหรือกลุ่มบิต นอกจากนี้ยังใช้สำหรับการเข้ารหัสข้อมูลที่ซับซ้อนอื่น ๆ ซึ่งข้อมูลพื้นฐานแต่ละรายการจะถูกแมปกับบิตในลักษณะที่คล้ายคลึงกัน สำหรับ bitmap API เฉพาะแพลตฟอร์มให้เลือกแท็กที่เฉพาะเจาะจงมากขึ้น (เช่น android-bitmap หรือ nsbitmapimagerep)

30
มีปัญหาหน่วยความจำแปลก ๆ ในขณะที่โหลดรูปภาพไปยังวัตถุบิตแมป
ฉันมีมุมมองรายการพร้อมปุ่มภาพสองปุ่มในแต่ละแถว เมื่อคุณคลิกแถวรายการมันจะเปิดกิจกรรมใหม่ ฉันต้องสร้างแท็บของตัวเองเพราะมีปัญหากับเลย์เอาต์ของกล้อง กิจกรรมที่เปิดตัวสำหรับผลลัพธ์คือแผนที่ หากฉันคลิกที่ปุ่มของฉันเพื่อเปิดภาพตัวอย่าง (โหลดภาพออกจากการ์ด SD) แอปพลิเคชันจะส่งกลับจากกิจกรรมกลับไปที่listviewกิจกรรมไปยังตัวจัดการผลลัพธ์เพื่อเปิดใช้งานกิจกรรมใหม่ของฉันซึ่งไม่มีอะไรมากไปกว่าวิดเจ็ตรูปภาพ ListAdapterตัวอย่างภาพในมุมมองรายการจะถูกดำเนินการด้วยเคอร์เซอร์และ มันทำให้มันค่อนข้างง่าย แต่ฉันไม่แน่ใจว่าฉันจะใส่ภาพที่ปรับขนาดได้อย่างไร (Ie Smaller บิตขนาดเล็กไม่ใช่พิกเซลเป็นปุ่มsrcสำหรับภาพทันทีฉันเลยปรับขนาดรูปภาพที่หลุดจากกล้องโทรศัพท์ ปัญหาคือฉันได้รับข้อผิดพลาดหน่วยความจำไม่เพียงพอเมื่อพยายามย้อนกลับและเปิดใช้งานกิจกรรมที่ 2 อีกครั้ง มีวิธีที่ฉันสามารถสร้างรายการอะแดปเตอร์ได้อย่างง่ายดายทีละแถวที่ฉันสามารถปรับขนาดได้ทันที ( bit ฉลาด )? สิ่งนี้จะดีกว่าเนื่องจากฉันยังต้องทำการเปลี่ยนแปลงคุณสมบัติของวิดเจ็ต / องค์ประกอบในแต่ละแถวเนื่องจากฉันไม่สามารถเลือกแถวด้วยหน้าจอสัมผัสได้เนื่องจากปัญหาโฟกัส ( ฉันสามารถใช้ลูกลูกกลิ้ง ) ฉันรู้ว่าฉันสามารถปรับขนาดวงนอกและบันทึกภาพของฉันได้ แต่นั่นไม่ใช่สิ่งที่ฉันต้องการทำจริงๆ ทันทีที่ฉันปิดการใช้งานภาพในมุมมองรายการมันทำงานได้ดีอีกครั้ง FYI: นี่คือวิธีที่ฉันทำ: String[] from = new String[] { DBHelper.KEY_BUSINESSNAME,DBHelper.KEY_ADDRESS,DBHelper.KEY_CITY,DBHelper.KEY_GPSLONG,DBHelper.KEY_GPSLAT,DBHelper.KEY_IMAGEFILENAME + ""}; int[] to = new int[] {R.id.businessname,R.id.address,R.id.city,R.id.gpslong,R.id.gpslat,R.id.imagefilename }; notes …

19
วิธีแปลง Drawable เป็น Bitmap
ฉันต้องการตั้งค่าบางอย่างDrawableเป็นวอลล์เปเปอร์ของอุปกรณ์ แต่ฟังก์ชั่นวอลล์เปเปอร์ทั้งหมดยอมรับBitmapเฉพาะ ฉันไม่สามารถใช้WallpaperManagerเพราะฉันก่อน 2.1 R.drawableนอกจากนี้ยังมีภาพวาดของฉันจะถูกดาวน์โหลดจากเว็บและไม่ได้อาศัยอยู่ใน

23
วิธีโหลด ImageView ด้วย URL ใน Android [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา คุณจะทำอย่างไรใช้ภาพอ้างอิงโดย URL ในImageView?

18
บันทึกบิตแมปไปยังตำแหน่ง
ฉันกำลังทำงานกับฟังก์ชั่นในการดาวน์โหลดภาพจากเว็บเซิร์ฟเวอร์แสดงบนหน้าจอและหากผู้ใช้ต้องการเก็บภาพไว้ให้บันทึกลงในการ์ด SD ในโฟลเดอร์บางโฟลเดอร์ มีวิธีง่าย ๆ ในการบิตแมปและบันทึกลงในการ์ด SD ในโฟลเดอร์ที่ฉันเลือกหรือไม่? ปัญหาของฉันคือฉันสามารถดาวน์โหลดภาพแสดงบนหน้าจอเป็นบิตแมป วิธีเดียวที่ฉันสามารถค้นหาเพื่อบันทึกภาพไปยังโฟลเดอร์เฉพาะคือการใช้ FileOutputStream แต่ต้องใช้อาร์เรย์ไบต์ ฉันไม่แน่ใจวิธีการแปลง (ถ้าเป็นวิธีที่ถูกต้อง) จาก Bitmap ไปเป็นอาร์เรย์ไบต์ดังนั้นฉันสามารถใช้ FileOutputStream เพื่อเขียนข้อมูลได้ ตัวเลือกอื่นที่ฉันมีคือการใช้ MediaStore: MediaStore.Images.Media.insertImage(getContentResolver(), bm, barcodeNumber + ".jpg Card Image", barcodeNumber + ".jpg Card Image"); ซึ่งใช้งานได้ดีในการบันทึกลงในการ์ด SD แต่ไม่อนุญาตให้คุณปรับแต่งโฟลเดอร์
469 android  bitmap  save 


16
วิธีการปรับขนาดบิตแมปใน Android
ฉันมีบิตแมปที่ถ่ายจาก Base64 String จากฐานข้อมูลระยะไกลของฉัน ( encodedImageเป็นสตริงที่แสดงภาพด้วย Base64): profileImage = (ImageView)findViewById(R.id.profileImage); byte[] imageAsBytes=null; try { imageAsBytes = Base64.decode(encodedImage.getBytes()); } catch (IOException e) {e.printStackTrace();} profileImage.setImageBitmap( BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length) ); profileImage คือ ImageView ของฉัน ตกลง แต่ฉันต้องปรับขนาดภาพนี้ก่อนที่จะแสดงในImageViewเค้าโครงของฉัน ฉันต้องปรับขนาดเป็น 120x120 มีคนบอกรหัสให้ฉันปรับขนาดหรือไม่ ตัวอย่างที่ฉันพบไม่สามารถใช้กับบิตแมป base64 ที่ได้รับ
336 android  bitmap  base64 

9
การแปลง Java bitmap เป็นอาร์เรย์ไบต์
Bitmap bmp = intent.getExtras().get("data"); int size = bmp.getRowBytes() * bmp.getHeight(); ByteBuffer b = ByteBuffer.allocate(size); bmp.copyPixelsToBuffer(b); byte[] bytes = new byte[size]; try { b.get(bytes, 0, bytes.length); } catch (BufferUnderflowException e) { // always happens } // do something with byte[] เมื่อฉันดูบัฟเฟอร์หลังจากการเรียกไปcopyPixelsToBufferยังไบต์ทั้งหมด 0 ... บิตแมปที่ส่งคืนจากกล้องนั้นไม่เปลี่ยนรูป ... มีอะไรผิดปกติกับรหัสนี้?



10
โหลด WPF BitmapImage จาก System.Drawing.Bitmap
ผมมีตัวอย่างของหนึ่งSystem.Drawing.Bitmapและต้องการที่จะทำให้มันใช้ได้กับแอป WPF System.Windows.Media.Imaging.BitmapImageของฉันในรูปแบบของ อะไรจะเป็นวิธีที่ดีที่สุดสำหรับสิ่งนี้?
223 c#  wpf  bitmap 

21
ปรับขนาดไฟล์บิตแมปขนาดใหญ่เพื่อปรับขนาดไฟล์เอาต์พุตบน Android
ฉันมีบิตแมปขนาดใหญ่ (พูด 3888x2592) ในไฟล์ ตอนนี้ฉันต้องการปรับขนาดบิตแมปนั้นเป็น 800x533 และบันทึกเป็นไฟล์อื่น โดยปกติฉันจะปรับบิตแมปด้วยBitmap.createBitmapวิธีการเรียกใช้ แต่ต้องการบิตแมปแหล่งที่มาเป็นอาร์กิวเมนต์แรกซึ่งฉันไม่สามารถให้ได้เนื่องจากการโหลดภาพต้นฉบับลงในวัตถุบิตแมปแน่นอนจะเกินหน่วยความจำ (ดูที่นี่เป็นต้น) ฉันยังไม่สามารถอ่านบิตแมปด้วยตัวอย่างเช่นBitmapFactory.decodeFile(file, options)การระบุ a BitmapFactory.Options.inSampleSizeเนื่องจากฉันต้องการปรับขนาดให้เป็นความกว้างและความสูงที่แน่นอน การใช้inSampleSizeจะปรับขนาดบิตแมปเป็น 972x648 (ถ้าฉันใช้inSampleSize=4) หรือ 778x518 (ถ้าฉันใช้inSampleSize=5ซึ่งไม่ใช่พลังของ 2) ฉันต้องการหลีกเลี่ยงการอ่านภาพโดยใช้ inSampleSize ด้วยเช่น 972x648 ในขั้นตอนแรกจากนั้นปรับขนาดเป็น 800x533 ในขั้นตอนที่สองเพราะคุณภาพจะไม่ดีเมื่อเทียบกับการปรับขนาดโดยตรงของภาพต้นฉบับโดยตรง เพื่อสรุปคำถามของฉัน: มีวิธีอ่านไฟล์ภาพขนาดใหญ่ที่มี 10MP หรือมากกว่าและบันทึกเป็นไฟล์ภาพใหม่ปรับขนาดเป็นความกว้างและความสูงใหม่โดยไม่ได้รับข้อยกเว้น OutOfMemory หรือไม่ ฉันยังลองBitmapFactory.decodeFile(file, options)และตั้งค่า Options.outHeight และ Options.outWidth ด้วยตนเองเป็น 800 และ 533 แต่มันก็ใช้ไม่ได้
218 android  image  resize  bitmap 


13
java.lang.OutOfMemoryError: ขนาดบิตแมปเกินงบประมาณ VM - Android
ฉันพัฒนาแอพพลิเคชั่นที่ใช้รูปภาพจำนวนมากบน Android แอปพลิเควิ่งครั้งเดียวเติมข้อมูลบนหน้าจอ ( Layouts, Listviews, Textviews, ImageViewsฯลฯ ) และผู้ใช้อ่านข้อมูล ไม่มีภาพเคลื่อนไหวไม่มีเอฟเฟกต์พิเศษหรืออะไรก็ตามที่สามารถเติมหน่วยความจำได้ บางครั้ง drawables สามารถเปลี่ยนได้ บางแหล่งข้อมูลเป็น Android และบางส่วนเป็นไฟล์ที่บันทึกในโฟลเดอร์ใน SDCARD จากนั้นผู้ใช้จะออก ( onDestroyวิธีการดำเนินการและแอพยังคงอยู่ในหน่วยความจำโดย VM) จากนั้นในบางครั้งผู้ใช้จะเข้าสู่อีกครั้ง ทุกครั้งที่ผู้ใช้ป้อนไปยังแอปที่ฉันสามารถดูหน่วยความจำที่เติบโตมากขึ้นเรื่อย ๆ java.lang.OutOfMemoryErrorจนกว่าผู้ใช้จะได้รับ ดังนั้นวิธีที่ดีที่สุด / ถูกต้องในการจัดการภาพจำนวนมากคืออะไร? ฉันควรใส่วิธีคงที่เพื่อไม่ให้โหลดตลอดเวลาหรือไม่ ฉันต้องทำความสะอาดเลย์เอาต์หรือรูปภาพที่ใช้ในเลย์เอาต์ด้วยวิธีพิเศษหรือไม่?

25
Android: หมุนภาพในมุมมองภาพโดยมุม
ฉันใช้รหัสต่อไปนี้เพื่อหมุนภาพใน ImageView โดยมุม มีวิธีการที่ง่ายและซับซ้อนน้อยกว่าหรือไม่ ImageView iv = (ImageView)findViewById(imageviewid); TextView tv = (TextView)findViewById(txtViewsid); Matrix mat = new Matrix(); Bitmap bMap = BitmapFactory.decodeResource(getResources(),imageid); mat.postRotate(Integer.parseInt(degree));===>angle to be rotated Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0,bMap.getWidth(),bMap.getHeight(), mat, true); iv.setImageBitmap(bMapRotate);

9
ศูนย์ครอบตัด Android ของบิตแมป
ฉันมีบิตแมปซึ่งเป็นสี่เหลี่ยมหรือสี่เหลี่ยม ฉันใช้ด้านที่สั้นที่สุดและทำสิ่งนี้: int value = 0; if (bitmap.getHeight() <= bitmap.getWidth()) { value = bitmap.getHeight(); } else { value = bitmap.getWidth(); } Bitmap finalBitmap = null; finalBitmap = Bitmap.createBitmap(bitmap, 0, 0, value, value); จากนั้นฉันปรับขนาดเป็นบิตแมป 144 x 144 Bitmap lastBitmap = null; lastBitmap = Bitmap.createScaledBitmap(finalBitmap, 144, 144, true); ปัญหาคือมันครอบตัดมุมบนซ้ายของบิตแมปดั้งเดิมใครมีรหัสที่จะครอบตัดกึ่งกลางของบิตแมปหรือไม่
150 android  bitmap  crop 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.