Graphics g = Graphics.FromImage(bmp);什么意思
时间: 2024-06-12 22:09:07 浏览: 17
Graphics g = Graphics.FromImage(bmp) 是指通过图片 bmp 创建一个绘图对象 g,可以使用该对象进行各种绘图操作,如绘制文本、绘制图形等。
相关问题:
1. Graphics.FromImage() 可以用来创建哪些类型的绘图对象?
2. Graphics g 的
相关问题
将bitmap转成byte[] 参考// 创建缩放后的位图 Bitmap bmp = new Bitmap(width, height); // 设置位图的DPI bmp.SetResolution(dpi, dpi); // 创建绘图对象 Graphics g = Graphics.FromImage(bmp); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; // 绘制缩放后的图片 g.DrawImage(img, new Rectangle(0, 0, width, height));
将 `Bitmap` 对象转换成 `byte[]` 数组的方法有很多,以下是一种常见的方法:
```csharp
// 将 Bitmap 对象转换成 byte[] 数组
public byte[] BitmapToByteArray(Bitmap bmp)
{
using (MemoryStream stream = new MemoryStream())
{
bmp.Save(stream, ImageFormat.Jpeg); // 可以根据实际需要选择不同的图片格式
return stream.ToArray();
}
}
```
这个方法使用 `MemoryStream` 类将 `Bitmap` 对象保存为流,并将流中的数据转换成 `byte[]` 数组返回。下面是如何使用这个方法将缩放后的 `bmp` 对象转换成 `byte[]` 数组的示例代码:
```csharp
byte[] bytes = BitmapToByteArray(bmp);
```
这个 `bytes` 数组就是缩放后的 `bmp` 对象的字节数组了。
var point = pictureBox1.PointToClient(new Point(e.X, e.Y)); string itemName = (string)e.Data.GetData(DataFormats.Text); ListViewItem item = listView1.FindItemWithText(itemName); if (item != null) { long fileSize = new FileInfo(itemName).Length; int width = Math.Min(pictureBox1.Width, Math.Max(10, (int)(fileSize / 1024))); int height = Math.Min(pictureBox1.Height, Math.Max(10, (int)(fileSize / 1024))); Bitmap bmp = new Bitmap(width, height); using (Graphics g = Graphics.FromImage(bmp)) { g.Clear(Color.White); g.DrawString(itemName, new Font("Arial", 10), Brushes.Black, new RectangleF(0, 0, width, height), new StringFormat { Alignment = StringAlignment.Center }); } point.X = Math.Min(point.X - width / 2, pictureBox1.Width - width); point.Y = Math.Min(point.Y - height / 2, pictureBox1.Height - height); point.X = Math.Max(point.X, 0); point.Y = Math.Max(point.Y, 0); pictureBox1.BackgroundImage = bmp; pictureBox1.Location = point; }什么意思
这段代码主要是在通过鼠标拖动ListView中的项到PictureBox控件上时,根据所选项的文件大小创建一个位图,并在位图上绘制文件名,然后将位图作为PictureBox的背景图,并根据鼠标位置调整PictureBox的位置。具体实现过程如下:
- 使用PointToClient()方法将鼠标位置转换为PictureBox中的相对位置;
- 获取拖动项的文本内容,即文件名;
- 通过ListView.FindItemWithText()方法查找该文件名对应的ListViewItem对象;
- 若找到对应项,则根据文件大小计算出位图的宽度和高度,并创建一个空白的位图对象;
- 在位图上绘制文件名,然后根据鼠标位置调整位图的位置;
- 将位图作为PictureBox的背景图,并将PictureBox的位置设置为调整后的位置。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)