-
在图片上做标签,图片可放大缩小
2018-05-07 14:39:33有点类似地图tag 眼见为实,先上一张效果图: ...首先这里先借鉴了下前辈的在图片上做标签,在此感谢无缘公子。 梳理功能以后,首先你要知道。后台返回的数据,包括 左上角坐标点 和 右下角坐标点。同...最近有个功能需要标记出没张图里脸部,并且点击大图后,图片可以缩放,标记也会跟着移动。有点类似地图tag
眼见为实,先上一张效果图:
由于最近项目已经完成差不多,在这段时间里把觉得有质量的功能拿出来和小伙伴们一起分享。
首先这里先借鉴了下前辈的在图片上做标签,在此感谢无缘公子。
梳理功能以后,首先你要知道。后台返回的数据,包括 左上角坐标点 和 右下角坐标点。同时还有图片长宽。
知道这些以后,那么我们往下面看。
根据在图片上做标签的思路,就是自定义View,在imageView上铺上一层标记层。在项目中,ImageLayout类。
当然 告诉你坐标点,和原图大小。其实就是做一个初中的几何题目。只不过难的是坐标图在手机上。
手机默认横向右为x正坐标,竖向下为y正坐标。
这里要明确。大图,宽设置为满屏。这里的原图相对手机屏幕的比例出来了
scale = pic_with / screenWith
然后根据这个比例算出,左上角点右下角 2个点在 手机屏幕的实际位置
int tempX = point_left_x * screenWith/ pic_with ;
int tempY = point_left_y * screenHeight/ pic_height ;
//正确的坐标 左上角
int trueX = left + tempX;int trueY = top + tempY;
这里列举了左上角的点。
知道了点以后,new ImageView然后加入到你的标记层。
//左上角的点 ImageView imageView_top_left = new ImageView(getContext()); LayoutParams leoParams_top_left = new LayoutParams(layoutParams.WRAP_CONTENT, layoutParams.WRAP_CONTENT); leoParams_top_left.leftMargin = trueX; leoParams_top_left.topMargin = trueY; imageView_top_left.setImageResource(R.mipmap.left_top);
layouPoints.addView(imageView_top_left, leoParams_top_left);
看到这里是不是都已经明白了。
当然我这里是标记脸4个点,知道左上和右下,已经确定了4个点。
说到这里,你会问。图片缩放呢。那么接下来页是本文的重点
首先感谢一开元控件photoView github地址
这个开源控件支持缩放,支持翻转。支持小图到大图动画。个人感觉还不错。
关键是里面有个监听方法,监听当前ImageView缩小 还是放大
executeTranslate
监听返回的是一个RectF对象,经过大量测试发现,这个就是你设置的图片在手机窗口的实际坐标。记住是手机窗口 并非手机屏幕。是不是有点糊涂,我们可以理解为就是超出手机屏幕外的。
在photoView源码里写一个接口,将Recf拿出来。同时重新绘制标记层,代码如下:
imgBg.setOnMatrixChangeListener(new OnMatrixChangedListener() { @Override public void onMatrixChanged(RectF rect) { Log.e("是不是有了",rect.toString()+""); Info info = PhotoView.getImageViewInfo(imgBg); int left = (int) info.getmImgRect().left; int top = (int) info.getmImgRect().top; int right = (int) info.getmImgRect().right; int bottom = (int) info.getmImgRect().bottom; addPoints(left,top,right,bottom); } });
自此整个功能,基本已经完成。
如果还不明白,大家可以深入去了解photoView整个控件、
当然点击事件的话,点击图片和电解标签。项目里都有备注的、如果对你有帮助,请帮忙star下吧
大神勿喷,支持原创!最后附上源码 源码下载
github地址
-
java如何做标签云
2011-11-18 22:08:51java如何作标签云? 标签云(Tag Cloud)是用以表示一个网站中的内容标签。标签的排列顺序一般依照字典排序,按照热门程度确定字体的大小和颜色。这样,依照字典或者热门程度来寻找信息便成为可能。标签通常是...java如何作标签云?
标签云(Tag Cloud)是用以表示一个网站中的内容标签。标签的排列顺序一般依照字典排序,按照热门程度确定字体的大小和颜色。这样,依照字典或者热门程度来寻找信息便成为可能。标签通常是超链接,指向分类页面。
标签云现在用javascript很容易实现,而且效果也很炫,在网络应用中比较多,但是java的桌面应用J2SE却很少,好像很难实现这种,但是最近发现java的图像界面也可以,我用的swt做的,实现用户关键词标签云生成。
经过几天的研究,本来想用awt做,发现这玩意儿不行,最后发现swt有这个能力,实在维基百科里面找到的,下面我自己改写的一个程序共分享
效果:
部分代码
public class TagCloudShow {
.Display display = new Display();
Shell shell = new Shell(display);
public static int rndColor(){
int[] color = {SWT.COLOR_BLUE, SWT.COLOR_CYAN, SWT.COLOR_RED, SWT.COLOR_YELLOW, SWT.COLOR_GREEN, SWT.COLOR_BLACK, SWT.COLOR_DARK_YELLOW, SWT.COLOR_DARK_BLUE, SWT.COLOR_DARK_GREEN, SWT.COLOR_MAGENTA};
Random r = new Random();
return color[r.nextInt(color.length)];
}
public static int rndangle(double weight){
if(weight >= 0.6){
return getRandom(-15,15);
}else if(weight < 0.6&&weight > 0.3){
return getRandom(16,45);
}else if(weight <= 0.3&&weight > 0.2){
return getRandom(46,90);
}else
return getRandom(-90,-15);
}
public static int getRandom(int start,int end){
return (int)(Math.random()*(end-start+1))+start;
}
public static void main(String [] args) {
Map<String, Double> m = new HashMap<String, Double>();
m.put("中国", 0.6);
m.put("华师", 0.4);
m.put("中心", 0.1);
m.put("国家", 0.8);
m.put("米兰", 0.2);
m.put("足球", 0.4);
m.put("伊拉克", 0.3);
m.put("韩国", 0.3);
m.put("博雅", 0.4);
m.put("日本", 0.05);
m.put("美国", 0.3);
m.put("曼联", 0.5);
m.put("篮球", 0.3);
m.put("伊朗", 0.2);
System.out.println(m);
wordBags(m);
}
} -
利用word的邮件合并做标签纸条
2016-06-28 15:32:33【2】先建一个word,页面布局--分栏--更多分栏(一般的小标签页分4栏合适,第一步就把这个操作确定, 后面在插入绘制表格的时候,表格会被限制分配合理的大小)。 【3】word标签页,插入--表格--绘制表格-...功能的背景:会议型的多客户需要给每个客户一张包括用户名等显示不同信息的小纸条。
(word的邮件合并功能;excel里面的信息批量导入准备;)
【1】为使用邮件合并功能的设置准备数据源,一个excel,如下面格式(数据量可以多点)。
用户名 真实姓名 密码 编号 分组 个数
abc9999 奥巴 888888 GD-2014614 直营总部 1
abc8888 安倍 888888 GD-2014615 直营总部 1
abc7777 卡梅 888888 GD-2014616 直营总部 1
abc6666 普京 888888 GD-2014617 直营总部 3
【2】先建一个word,页面布局--分栏--更多分栏(一般的小标签页分4栏合适,第一步就把这个操作确定,
后面在插入绘制表格的时候,表格会被限制分配合理的大小)。
【3】word标签页,插入--表格--绘制表格--(大小按6行的数据插入点,每个数据点都会援引excel不同列
名下的数据)表格上用户名、密码列名可能需要输入在数据点前面,其他列名可无。注意1:在这一个表格设
置完毕之后,在后面一定要空一行,这样后面在邮件合并生成多张表格的时候会分成多张。注意2:生成多张
的时候,表格是在一页word上先从上往下排列,排列数是按页面布局的分栏数。
【4】word标签页,邮件--开始邮件合并--邮件合并分布向导--(类型:目录)下一步开始文档--(使用当
前文档)下一步选择收件人--(使用现有列表)浏览--在桌面或是某地找到这个excel选中,打开,选中
sheet1确定--确定。
【5】word标签页,邮件--(第1个数据点)插入合并域--分组--插入--关闭;(第2个数据点)插入合并
域--真实姓名--插入--关闭;(第3个数据点)插入合并域--用户名--插入--关闭;(第4个数据点)插入合
并域--密码--插入--关闭;(第5个数据点)插入合并域--个数--插入--关闭;(第6个数据点)插入合
并域--编号--插入--关闭。
【6】接上步,word标签页,邮件--完成并合并--编辑单个文档--(全部)确定。 -
做标签时,批量处理数据代码(Matlab)
2016-11-25 10:52:53附一些制作标签的工具:https://github.com/tzutalin/labelImg 记下代码,方便我自己以后用,修改部分内容即可,比如文件夹名字,迭代的次数和索引等。。。 function manageImages %%=====================by ...附一些制作标签的工具:https://github.com/tzutalin/labelImg
记下代码,方便我自己以后用,修改部分内容即可,比如文件夹名字,迭代的次数和索引等。。。
function manageImages %%=====================by chenzhi 2016.9.8==========================%% %%============将一个文件夹里所有图片保存到指定文件夹并且以.jpg格式保存==%% clc; %%=====================添加不同文件夹下的文件,并指定添加的数量=======%% % Files = dir(strcat('E:\chenzhi\SubCNN-master\fast-rcnn\data\KITTI\data_object_image_2\training\image_2\','*.png')); % LengthFiles = length(Files); % %%for i = 1:LengthFiles; % j = 1; % for i = 1:7:LengthFiles; % Img = imread(strcat('E:\chenzhi\SubCNN-master\fast-rcnn\data\KITTI\data_object_image_2\training\image_2\',Files(i).name)); % path = 'D:\chenzhi\data_annotate\Kitti\train_img\'; % %name = sprintf('2012_%06d_00%s',j,'.jpg'); % name = sprintf('%06d%s',j+1462,'.jpg'); % filename=[path name]; % imwrite(Img,filename); % j = j+1; % end % Files = dir(strcat('E:\dataset\bike\','*.jpg')); % LengthFiles = length(Files); % %%for i = 1:LengthFiles; % for i = 1:204; % Img = imread(strcat('E:\dataset\bike\',Files(i).name)); % path = 'E:\chenzhi\faster_rcnn-master_cz\faster_rcnn-master\datasets\custom\VOC2012\JPEGImages\' % name = sprintf('%s%06d%s','2012_',1544+i,'_00.jpg')%%之前文件夹里已经有1390个文件了 % filename=[path name]; % imwrite(Img,filename); % % end % Files = dir(strcat('E:\dataset\person\','*.bmp')); % LengthFiles = length(Files); % %%for i = 1:LengthFiles; % for i = 1:310; % Img = imread(strcat('E:\dataset\person\',Files(i).name)); % path = 'E:\chenzhi\faster_rcnn-master_cz\faster_rcnn-master\datasets\custom\VOC2012\JPEGImages\' % name = sprintf('%s%06d%s','2012_',1748+i,'_00.jpg')%%之前文件夹里已经有1390个文件了 % filename=[path name]; % imwrite(Img,filename); % % end %%================写trainval.txt 和test.txt================%% % fid1=['E:\py-R-FCN-master\data\VOCdevkit0712\VOC0712\ImageSets\Main\','trainval.txt']; %创建新的txt文件 % c=fopen(fid1,'wt'); %打开txt文件 % fid2=['E:\py-R-FCN-master\data\VOCdevkit0712\VOC0712\ImageSets\Main\','test.txt']; %创建新的txt文件 % c2=fopen(fid2,'wt'); %打开txt文件 % Files = dir(strcat('E:\py-R-FCN-master\data\VOCdevkit0712\VOC0712\JPEGImages\','*.jpg')); % LengthFiles = length(Files); % for i = 1:LengthFiles; % str = Files(i).name; % str = str(1:end-4) ; % % if mod(i,3) == 0 % fprintf(c2,'%s\n',str); % else % fprintf(c,'%s\n',str); %按行写入txt文件,%s为数据形式,str为写入数据。。。 % end % end % % fclose(c); %关闭txt文件 % fclose(c2); %关闭txt文件 %%================将一个文件夹下面的文件(txt)移动到另外一个文件夹 % Files = dir(strcat('E:\chenzhi\SubCNN-master\fast-rcnn\data\KITTI\data_object_image_2\training\label_2\','*.txt')); % LengthFiles = length(Files); % %for i = 1:LengthFiles; % j = 1; % for i = 1:7:LengthFiles; % txtname = strcat('E:\chenzhi\SubCNN-master\fast-rcnn\data\KITTI\data_object_image_2\training\label_2\',Files(i).name); % path = 'D:\chenzhi\data_annotate\Kitti\train_label\'; % name = sprintf('%06d%s',j+1462,'.txt'); % filename=[path name]; % copyfile(txtname,path); % j = j+1; % end %%================修改文件名字格式================%% % Files = dir(strcat('D:\chenzhi\data_annotate\dataImage\all\','*.jpg')); % LengthFiles = length(Files); % %%for i = 1:LengthFiles; % for i = 1:LengthFiles; % Img = imread(strcat('D:\chenzhi\data_annotate\dataImage\all\',Files(i).name)); % path = 'D:\chenzhi\data_annotate\VOC2012\new\'; % name = sprintf('%s%06d%s','2012_',i,'_00.jpg'); % filename=[path name]; % imwrite(Img,filename); % % end Files = dir(strcat('D:\chenzhi\data_annotate\Kitti\train_label\','*.txt')); LengthFiles = length(Files); path1 = 'D:\chenzhi\data_annotate\Kitti\train_label\'; path2 = 'D:\chenzhi\data_annotate\Kitti\train_label2\'; for i = 1:LengthFiles; filename = Files(i).name; newname = sprintf('%06d%s',i+1462,'.txt'); file_name = [path1 filename]; new_name = [path2 newname]; movefile(file_name,new_name); end end
-
微信小程序里面的标签和html标签做对比
2018-06-12 16:37:09一、微信小程序和html5标签的区别:二、wxss 选择器HTML5微信小程序div(标签选择器)view、text、icon、input、image、navigator(标签选择器)class(类选择器)classid(id选择器)(效率最高)id(效率最高)element,... -
用jstl标签怎么做表格
2013-07-10 05:58:26用jstl标签 做一个3行3列的表格,本人只记得jstl里边的都是些动作标签,但是如何用jstl做静态的表格,求高手指教 -
MATLAB怎么做RFID标签识别的仿真
2017-12-04 12:13:38matlab 之前学过,但不精通,更不会射频识别RFID技术中标签识别查找分组的仿真 matlab 之前学过,但不精通,更不会射频识别RFID技术中标签识别查找分组的仿真 matlab 之前学过,但不精通,更不会射频识别RFID技术中... -
Ueditor指定用br做换行标签
2016-08-26 16:11:45Ueditor富文本框中对每段换行文字都会自动追加标签进行包裹,看到的换行效果其实是由ueditor中标签的样式实现的,在实际使用时这可能带来问题。我们可以指定用br换行,整段文字只有最外层有标签包裹,换行则是,处理... -
淘宝人群标签时效时间 精准淘宝人群标签方法
2019-01-10 12:10:48其实这个时效没有统一的规定,但是时间长了,比如超过三个月那肯定不行,一般的话是以新品上架前两天会开始匹配标签,所以要经常对人群标签进行优化,长期不做标签会消失,经常不优化,标签会混乱,那么该如... -
Unity NGui 利用UIToggle做个分页标签
2015-06-26 15:13:40利用UIToggle做个分页标签像这样 1.首先做个标签预制, 父节点 2.在要挂上这个分页标签的节点上再挂上子节点和孙节点 . List上挂UIScrollVIew,Grid上挂UIGrid,作为容器,之后每个tab就挂... -
Vue.js做select下拉列表(ul-li标签仿select标签)
2017-04-22 23:33:36目标:用ul-li标签结合Vue.js知识做一个模仿select标签的下拉选项列表。 知识点: 组件的写法及运用 组件之间的数据传递(props的运用) 组件之间的数据传递($emit的运用) 动态数据的绑定(v-bind) -
如何用softmax和sigmoid来做多类分类和多标签分类
2018-07-04 17:07:28首先,说下多类分类和多标签分类的区别 多标签分类: 一个样本可以属于多个类别(或标签),不同类之间是有关联的,比如一个文本被被划分成“人物”和“体育人物”两个标签。很显然这两个标签不是互斥的,而是有... -
使用文本标签做一个简单的自我介绍
2019-06-03 19:24:05做成表格形式(六行两列的表格) 表格的第一行填写基本信息,使用图片标签 表格的第二行为联系方式,包含超链接标签 表格的第三行为家庭信息,使用有序列表标签 表格的第四行为学籍信息 表格的第五行为出生年月 表格... -
做一个后台管理系统tab标签功能
2018-07-17 17:53:05刚好我也想做点东西,我就想着自己能不能写出来,项目地址在后面 需求分析 1、技术 因为我一开始是自己查的资料,然后很多资料都指向jquery ui,但是因为是自己造一个,所以我就看了一下他的写法。 2、功能 1... -
JEECG UI标签库做成单独开源项目规划
2013-11-19 15:51:10现在ui很多,把ui封装成标签有利有弊? -
在antd的标签组件中做路由跳转
2018-11-18 17:10:18使用react-router-dom在组件中可以很方便的使用 Link 标签进行路由跳转。但是我碰到了这样的情况 Warning: validateDOMNesting(...): <a> cannot appear as a descendant of <a>... -
手把手教你做一个自定义表格标签
2014-11-13 16:11:08之前我已经发使用自定义标签来做数据字典的示例,也就是说自定义标签并不是你想的那么难,今天就再来作一个自定标标签实现的表格控件。当然你别较真,麻雀虽小五脏俱全的,你懂就行了。 我先来简单介绍一下: ... -
html标签做代码块
2009-04-03 13:27:00pre 以原有格式显示元素内的文字是已经格式化的文本。 blockcode 表示程序的代码块。 code 指定代码范例。 /** * 弹出输入框 Prompt * * @param object {message:{String},title:{String},value:{String},... -
SVM做多标签回归时遇到的问题及相关解决方式和解释说明
2020-01-03 20:28:09SVM做多标签回归时遇到的问题及相关解决方式和解释说明情况说明要解决的回归问题选用sklearn来编译多标签的SVR代码实现遇到的问题1:多维标签回归问题可以用SVM解决吗?2:多维标签回归问题是否可以用KNN解决?3:多... -
通过meta标签改变浏览器内核做兼容
2015-09-07 16:33:10通过以上两个标签可使国内浏览器默认使用极速模式浏览 -
使用script标签来做html页面的模板
2016-09-19 12:06:20html页面经常需要js动态加载html内容,一般都采取js拼接html 的方式实现,最近发现可以使用标签来做个html模板,这样更方便。并且代码可读性也增强了。 --> script html模板 * { font-... -
用CSS+UL标签做菜单
2009-08-11 08:58:00用CSS+UL标签做菜单/*用,,做菜单,适用绝大多数浏览器:step 1.HTML结构:div里套ul和li,li里套链接*/body{}.menu{}.menu ul{ list-style: none; font-size: 10pt;}.menu li{ float: left;/*step 2.列表由竖排改横排... -
Web前端笔记-i标签做小图标以及改源码注意事项
2019-06-22 12:17:07最简单的使用i标签做小图标 修改前端源码注意的问题 最简单的使用i标签做小图标 运行截图如下: 实例结构如下: 此处就是使用i标签制作的小图标 其中html源码如下: <html> <head> <... -
手机端做h5页面用embed标签不显示,pc端可以
2015-05-28 01:14:35手机端做h5页面用embed标签不显示,pc端可以 手机端做h5页面用embed标签不显示,pc端可以 -
java enum 结合jstl自定义标签做展示
2011-03-10 15:53:00Java Enum 学习篇: ...上面这篇博客介绍了enum的入门和原理,我将把同事做的jstl自定义标签展示出来,积累下知识 1.定义enum-HvProcStateEnumpublic enum HvPro -
H5 video标签列表渲染用canvas截取视频画面做封面
2018-05-25 16:52:05这是一个关于h5的video视频播放标签来做视频播放截取视频画面的问题。 需求是这样的:要渲染一个视频资源列表,在列表中获取视频的画面来做列表的封面。看到这个需求就想,为什么要在列表里截取视频画面做封面,为... -
从数据仓库到百万标签库,精细化数据管理,这么做就够了
2020-04-14 10:42:49不知道你们有没有发现,营销的手段越来越...我记得当初打造1000+标签库的时候,也是觉得太多了,但大数据运营几年后,却有了观念的转变今天就来讲一讲,主要包括五大部分内容:标签库定位、标签体系、产品功能、平台... -
java 做采集器 a标签正则表达式
2014-04-27 00:28:07如果仅仅是a标签的整体 Java codeString pattern = "(?i)]*>"; 如果要匹配出链接来 Java codeString pattern = "(?i)]*?href=\"([^\"]*)\"[^>]*>";