【曾经】图片快速分割

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 using System.Drawing.Imaging;
 11 using System.IO;
 12
 13 namespace picfg
 14 {
 15     public partial class Form1 : Form
 16     {
 17         public Form1()
 18         {
 19             InitializeComponent();
 20         }
 21
 22         private void button1_Click(object sender, EventArgs e)
 23         {
 24
 25            openFileDialog1.ShowDialog();
 26            textBox1.Text = openFileDialog1.FileName;
 27            if (openFileDialog1.FileName != "")
 28            {
 29                pictureBox1.Load(openFileDialog1.FileName);
 30                label7.Text = pictureBox1.Image.Width.ToString() + " x " + pictureBox1.Image.Height.ToString();
 31                button2.Enabled = true;
 32            }
 33
 34         }
 35         string folder="";
 36         private void button2_Click(object sender, EventArgs e)
 37         {
 38
 39             if (!(textBox4.Text == "" || textBox3.Text == "" || textBox5.Text == ""))
 40             {
 41
 42                 int w, h, x, y;
 43                 int n = int.Parse(textBox2.Text);  //行
 44                 int m = int.Parse(textBox3.Text);  //列
 45                 int index = int.Parse(textBox5.Text);
 46                 string file;
 47                 w = pictureBox1.Image.Width / m;
 48                 h = pictureBox1.Image.Height / n;
 49
 50                 for (int i = 0; i < n; i++)
 51                 {
 52                     for (int j = 0; j < m; j++)
 53                     {
 54                         y = i * h;
 55                         x = j * w;
 56                         string dir = Application.StartupPath + "\\" + textBox4.Text + "\\";
 57                         folder = dir;
 58                         if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);
 59                         file = Application.StartupPath + "\\" + textBox4.Text + "\\" + textBox4.Text + (index + i * m + j) + comboBox1.Text;
 60
 61                         picjq(pictureBox1.Image, w, h, x, y, file, comboBox1.Text);
 62
 63
 64                     }
 65                 }
 66                 MessageBox.Show("分割完成");
 67             }
 68             else MessageBox.Show("编辑框不能为空,请填写完整!");
 69
 70         }
 71
 72
 73
 74
 75         private void picjq(Image img,int w,int h,int x,int y,string file,string type)
 76         {
 77             Bitmap bitmap = new Bitmap(w, h);  //创建新图位图
 78             Graphics graphics = Graphics.FromImage(bitmap); //创建作图区域
 79             graphics.DrawImage(img, new Rectangle(0, 0, w, h), new Rectangle(x, y, w, h), GraphicsUnit.Pixel);//截取原图相应区域写入作图区
 80             Image saveImage = Image.FromHbitmap(bitmap.GetHbitmap()); //从作图区生成新图
 81            // pictureBox1.Image = saveImage;
 82             //保存图象
 83             switch(type)
 84             {
 85                 case ".jpg": saveImage.Save(file, ImageFormat.Jpeg); break;
 86                 case ".gif": saveImage.Save(file, ImageFormat.Gif); break;
 87                 case ".bmp": saveImage.Save(file, ImageFormat.Bmp); break;
 88                 case ".png": saveImage.Save(file, ImageFormat.Png); break;
 89                 default: saveImage.Save(file, ImageFormat.Jpeg); break;
 90
 91             }
 92             saveImage.Dispose(); //释放
 93             bitmap.Dispose();
 94             graphics.Dispose();
 95
 96
 97
 98         }
 99         //限定textbox只能输入数字
100         private void textBox2_TextChanged(object sender, EventArgs e)
101         {
102             if (textBox2.Text!="")label8.Text = "将被分割成" + textBox2.Text + "行";
103             else label8.Text = "";
104         }
105
106         private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
107         {
108             e.Handled = e.KeyChar < ‘1‘ || e.KeyChar > ‘9‘;
109             if (e.KeyChar == (char)8) e.Handled = false;
110         }
111
112         private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
113         {
114             e.Handled = e.KeyChar < ‘0‘ || e.KeyChar > ‘9‘;
115             if (e.KeyChar == (char)8) e.Handled = false;
116
117         }
118
119         private void textBox5_KeyPress(object sender, KeyPressEventArgs e)
120         {
121             e.Handled = e.KeyChar < ‘0‘ || e.KeyChar > ‘9‘;
122             if (e.KeyChar == (char)8) e.Handled = false;
123
124         }
125
126         private void textBox3_TextChanged(object sender, EventArgs e)
127         {
128             if (textBox3.Text != "") label9.Text = "将被分割成" + textBox3.Text + "列";
129             else label9.Text = "";
130         }
131
132         private void button3_Click(object sender, EventArgs e)
133         {
134             if(folder!="")System.Diagnostics.Process.Start("Explorer.exe",folder);
135             else System.Diagnostics.Process.Start("Explorer.exe", Application.StartupPath);
136         }
137
138
139
140
141
142
143
144
145     }
146 }

百度云下载

时间: 2024-10-10 05:18:40

【曾经】图片快速分割的相关文章

PHP 图片 平均分割

$filename = 'D://WWW/1.jpg'; $p = 5; // Get new sizes list($width, $height) = getimagesize($filename); $newwidth = $width; $newheight = floor($height / $p); $last = $height % $p; // Load $source = imagecreatefromjpeg($filename); for( $i=0 ; $i< $p; $

PHP图片平均分割

/** * 图片平均分割 * $h = 23, $w = 8 * 保存:web/upload_pic/Cut */ public function actionCutPng() { $filename = dirname(dirname(dirname(dirname(__FILE__)))).'\web\upload_pic\test114.png'; list($width, $height) = getimagesize($filename); $h = 23; $w = 8; $neww

如何把图片快速生成PDF?这个方法真不错!

在我们办公学习时候,经常会遇见图片转换PDF的情况,那么怎样把图片快速生成PDF呢?有时候呢,图片在电脑上可以直接在电脑进行处理,但是在手机上时候怎么操作呢?今天小编分享一个方法,在手机上将图片转换PDF的办法,需要的可以看看.操作工具:迅捷PDF阅读器操作步骤: 在我们打开手机的应用商店,搜索:迅捷PDF阅读器,下载使用. 打开软件运行,选择[小功能],然后选择[图片生成PDF].3 点击添加手机里的图片,并且给生成的PDF文档命名.点击确定,等待生成PDF文档. 等待PDF文档转换完成,点击

Selective Search for Object Recognition 论文笔记【图片目标分割】

这篇笔记,仅仅是对选择性算法介绍一下原理性知识,不对公式进行推倒. 前言: 这篇论文介绍的是,如果快速的找到的可能是物体目标的区域,不像使用传统的滑动窗口来暴力进行区域识别.这里是使用算法从多个维度对找到图片中,可能的区域目标,减少目标碎片,提升物体检测效率. 下面是这篇文章的笔记: 介绍及引言: 图片是分层次的,比如下图中a: 沙拉和匙在沙拉碗里,而碗又在桌子上,另外桌子和木头有关或者说桌子和桌子上的所有东西有关.所以图片中的目标是有层次的. 图片分割应该按层次来,也不存在使用单个策略这样通用

分享一个 Java String split 快速分割的方法

java中string.split() 方法比较强大,但是split()方法采用正则表达式,速度相对会慢一点, 其实大多数场景下并不需要使用正则表达式,下面分享一个不使用正则表达式分隔字符串的方法. 方法保证了和 string.split()的输出结果一致. 直接看代码: public static String[] split(String src,String delimeter){ String srcStr = src; String delimeterStr = delimeter;

.net图片快速去底(去除白色背景)

public System.Drawing.Bitmap KnockOutGzf(String path) { System.Drawing.Image image = System.Drawing.Image.FromFile(path); System.Drawing.Bitmap bitmapProxy = new System.Drawing.Bitmap(image); image.Dispose(); for (int i = 0; i < bitmapProxy.Width; i+

用CorelDRAW等分分割图片的方法

在CorelDRAW中,想要将图片等分分割可以通过放置容器来实现,根本不需要裁剪工具和辅助线.例如两等分:首先要建立确定等分的份数,建立长方形或正方形.然后把图片放置容器,调整位置,做无缝拼接就可以了.比起Photoshop要简单许多,是不是? 论坛中留言最多的就是如何把一张图片分成12等份,就这一问题,小编整理一篇文章,做出解决方案.特别是做一些QQ空间背景啊感觉好炫酷的,不需要在一张张的切了,简单实用,有需要的快来学习吧. 1.打开CorelDRAW X8软件,导入一种要做分割的图片. 2.

cocos2d-x图片转换,分割工具

可以分割,或转换,Texturepacker导出的图片,方便使用偷到的资源,和cocos2d-x开发. 下载地址: http://pan.baidu.com/s/1eQH2Wng 打开或直接拖入资源文件夹 这是预览 dota传奇的资源 批处理保存 保存单张图片 保存分割的小图

项目笔记---CSharp图片处理

原文:项目笔记---CSharp图片处理 最近由于项目上需要对图片进行二值化处理,就学习了相关的图片处理上的知识,从开始的二值化的意义到动态阀值检测二值化等等,并用C#得以应用,学到了很多的知识和大家分享下我个人的经验,希望对大家有帮助. 二值化 二值化简而言之是对一副彩色图片进行0/1运算,最终显示一副黑白相间的图片,其意义多数在于对二值化处理后的图片进行分割识别,一些自动识别的验证码工具大多是先进行二值化,然后在模式识别,最终推断出验证码:我的项目中是由于硬件只支持黑色和白色,所以要对用户的