数据库存图片

所谓数据库存图片,并不能真的将照片存入。解释如下:

                                                                                                图一

如上图属性pimage所示,其中的图片存入的仅仅是一个网站的部分路径

                                                                                                图二

上图jsp文件中通过newPro.pimage来进行图片路径的索引(图片实际是存在服务端的文件夹中),然后在图一中的pimage的属性中可以看到image/d.jpg(实际就是图片存在服务端文件路径),如下图上所示:

                                   

                                                                                                图三

部分代码实现的效果如上图显示

 

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android 中使用 Kotlin 图片数据库可以采用以下步骤: 1. 创建一个继承自 RoomDatabase 的抽象类,定义一个用于访问数据库的 DAO 接口。 ```kotlin @Database(entities = [ImageEntity::class], version = 1) abstract class MyDatabase : RoomDatabase() { abstract fun imageDao(): ImageDao } ``` 2. 创建一个实体类 ImageEntity,用于表示图片的信息,包括图片的 ID、名称、路径等。 ```kotlin @Entity(tableName = "images") data class ImageEntity( @PrimaryKey(autoGenerate = true) val id: Int, val name: String, val path: String ) ``` 3. 创建一个 DAO 接口 ImageDao,定义用于访问数据库的方法,包括插入图片、删除图片、查询所有图片等。 ```kotlin @Dao interface ImageDao { @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(image: ImageEntity) @Delete fun delete(image: ImageEntity) @Query("SELECT * FROM images") fun getAll(): LiveData<List<ImageEntity>> } ``` 4. 在需要图片时,将图片转换成字节数组,并插入到数据库中。 ```kotlin val file = File(imagePath) val inputStream = FileInputStream(file) val buffer = ByteArray(file.length().toInt()) inputStream.read(buffer) val imageBytes = Base64.encodeToString(buffer, Base64.NO_WRAP) val imageEntity = ImageEntity(0, imageName, imageBytes) myDatabase.imageDao().insert(imageEntity) ``` 5. 在需要显示图片时,从数据库中查询图片信息,并将字节数组转换成 Bitmap。 ```kotlin val imageEntity = myDatabase.imageDao().getById(imageId) val imageBytes = Base64.decode(imageEntity.path, Base64.NO_WRAP) val bitmap = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size) ``` 注意:图片数据库可能会导致数据库占用过多空间,建议仅图片的路径或 URI,图片本身保在文件系统中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值