精华内容
下载资源
问答
  • 现在我要做一个图片上动态输入文字的效果,就是点击图片的某一个位置显示一个文本输入框editText,然后文本输入框里面输入文字,而且输入的文字可以改变字体的大小和颜色,点击确定将文字显示在图片上!...
  • edittext输入图片文字图片经过压缩、缩小
  • C#在图片上绘制文字

    热门讨论 2013-05-17 09:52:02
    打开任意一幅图片,然后文本框中输入任意你想要的文字,点击“绘制文字”按钮,你输入文字会显示打开图片的左上角位置。  new Font("宋体", 50), 绘制的字体名称和字号  new SolidBrush(Color.Red)字体的...
  • Pygame在图片上汉字

    2019-10-10 18:02:03
    用Pygame在图片上汉字一、由来二、踩坑三、总结四、整合代码效果图 一、由来 最近一直做写汉字的东西,总结了一下,以我所知,有这几种方法: 1、用PIL实现一张图片上汉字 2、用freetype实现 还有最近我才...

    一、由来

    最近一直在做写汉字的东西,总结了一下,以我所知,有这几种方法:

    • 1、用PIL实现在一张图片上写汉字
    • 2、用freetype实现

    还有最近我才找到的:

    • 3、用Pygame来实现在图片上写汉字

    二、踩坑

    方法 缺点
    PIL 弄了很久,发现无法对字体的样式进行增加,例如加粗(我试过用膨胀来做),斜体,下划线等等,而且还有一个很大的坑,输出的汉字字体默认为加粗样式,而不是正常的细体,这对于我来说影响很大。
    freetype 功能应该挺齐全,能实现各种需求,但是网上资源太少(于我而言),我找了很久,放弃了,官方文档也没看明白。
    Pygame 个人认为较为简单,功能强大,能满足我的需求

    三、总结

    我之前用PIL生成过一次字体的数据,结果是,发现PIL做出来的文字本身默认加粗,无法模拟正常粗细的汉字。

    四、整合代码

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2019/10/10 下午3:15
    # @Author  : Jay.Chen
    # @File    : Pygame_fonts.py
    # @Software: PyCharm
    
    import pygame
    import os
    from PIL import Image
    
    # 生成图像
    image = Image.new('RGB', (512, 224), (255, 255, 255))
    # 将图像保存下来
    image.save(open(str(1) + '.png', 'wb'), 'png')
    # 初始化
    pygame.init()
    # 读取图像
    img = pygame.image.load('1.png')
    # 导入字体
    fontType = os.path.join("fonts/simsun.ttc")
    # 设置一个字体对象
    fontObject = pygame.font.Font(fontType, 32)
    #得到预计输入字体的所需大小
    # print(fontObject.size('xs'))
    #设置加粗
    # fontObject.set_bold(True)
    #设置斜体
    # fontObject.set_italic(True)
    #设置下划线
    # fontObject.set_underline(True)
    #创建文本surface
    create_text = fontObject.render('我是宋体写出来的。\n能换行吗', True, (0, 0, 0), (255, 255, 255)) #文本、抗锯齿、字体颜色、背景颜色
    #surface的复制
    img.blit(create_text, (50, 50)) #文本surface、复制到目标surface的起始坐标
    #保存
    pygame.image.save(img, 'b.png')
    
    

    效果图

    result


    END

    更多Pygame的用法和细节,不妨看看官网的文档,官网就不贴了。

    还可以看看这个链接: Pygame接口大全.

    展开全文
  • 利用php代码中的imagecreate、ImageColorAllocate、imagettftext等函数编写输入指定文字转换成图片
  • iOS在图片上添加文字图片

    千次阅读 2016-09-30 15:58:47
    Objective-C在图片上添加文字或者图片

    Objective-C在图片上添加文字,请使用如下方法:


    /**
     在图片上添加文字,只支持英文,如果想添加其他文字,请看下面的方法
    
     @param image  图片
     @param string 要添加的文字
    
     @return 新的图片
     */
    -(UIImage *)addText:(UIImage *)image text:(NSString *)string
    {
        //上下文的大小
        int w = image.size.width;
        int h = image.size.height;
        CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();//创建颜色
        //创建上下文
        CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 44 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
        CGContextDrawImage(context, CGRectMake(0, 0, w, h), image.CGImage);//将img绘至context上下文中
        CGContextSetRGBFillColor(context, 0.0, 1.0, 1.0, 1);//设置颜色
        char* text = (char *)[string cStringUsingEncoding:NSASCIIStringEncoding];
        CGContextSelectFont(context, "Georgia", 50, kCGEncodingMacRoman);//设置字体的大小
        CGContextSetTextDrawingMode(context, kCGTextFill);//设置字体绘制方式
        CGContextSetRGBFillColor(context, 255, 0, 0, 1);//设置字体绘制的颜色
        CGContextShowTextAtPoint(context, w/2-strlen(text)*5, h/2, text, strlen(text));//设置字体绘制的位置
        //Create image ref from the context
        CGImageRef imageMasked = CGBitmapContextCreateImage(context);//创建CGImage
        CGContextRelease(context);
        CGColorSpaceRelease(colorSpace);
        return [UIImage imageWithCGImage:imageMasked];//获得添加水印后的图片   
    }


    Objective-C在图片上添加图片,请使用如下方法:

    /**
     在一张图片上添加logo或者水印;
     添加文字也可以这么做,让美工做一张文字图片即可
     warn 不支持jpg的图片
     
     @param image     原始的图片
     @param logoImage 要添加的logo
    
     @return 返回一张新的图片
     */
    -(UIImage *)addImageLogo:(UIImage *)image text:(UIImage *)logoImage
    {
        //原始图片的宽和高,可以根据需求自己定义
        CGFloat w = self.view.frame.size.width;
        CGFloat h = self.view.frame.size.height;
        //logo的宽和高,也可以根据需求自己定义
        CGFloat logoWidth = logoImage.size.width;
        CGFloat logoHeight = logoImage.size.height;
        //绘制
        CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
        CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 44 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
        CGContextDrawImage(context, CGRectMake(0, 0, w, h), image.CGImage);
        //绘制的logo位置,可自己调整
        CGContextDrawImage(context, CGRectMake(w-logoWidth-10, 10, logoWidth, logoHeight), [logoImage CGImage]);
        CGImageRef imageMasked = CGBitmapContextCreateImage(context);
        CGContextRelease(context);
        CGColorSpaceRelease(colorSpace);
        return [UIImage imageWithCGImage:imageMasked];
    }
    


    展开全文
  • div模拟input/textarea实现输入文字图片 1.css .div-edit { font-size: 15px; width: 100%; height: 40px; line-height: 20px; padding: 10px 15px; border: 1px solid #9f9f9f; border-radius: 8px; ...

    div模拟input/textarea实现输入文字图片

    1.css

    .div-edit {
    	font-size: 15px;
    	width: 100%;
    	height: 40px;
    	line-height: 20px;
    	padding: 10px 15px;
    	border: 1px solid #9f9f9f;
    	border-radius: 8px;
    	margin: 0;
    	display: flex;
    	flex-wrap: wrap;
    	box-sizing: border-box;
    	outline: 0;
    	-webkit-appearance: none;
    	overflow: auto;
    }
    
    .div-edit img {
    	height: 24px;
    	width: auto;
    }
    
    /* 清除左右滚动条 */
    .div-edit::-webkit-scrollbar {
    	display: none;
    }
    
    .div-edit:empty:before {
    	content: attr(placeholder);
    	color: #999;
    }
    
    .div-edit:focus:before {
    	content: none;
    }
    

    2.html

    <div id="saytext" class="div-edit" contenteditable="plaintext-only" placeholder="请输入信息..."></div>
    <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1568102205696&di=9cb52f7f2c062423319fdb31cc669b86&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201602%2F27%2F20160227213604_BVZYf.jpeg" height="80" onclick="changeSaytext(this)" />
    <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1568102357940&di=aaef4c5eee235a59341d29d94581ae4b&imgtype=0&src=http%3A%2F%2Fimage.retui8.com%2F%3Furl%3Dhttp%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FvwWXNGTJrV2wEtK2Z4iaEzgJP95RdTy73iazdqWib8sDWSlWlhWY7nGuuFeYwXfVQtq23DtkLJUYEDxs9YNy2icQoA%2F640%3F.jpg" height="80" onclick="changeSaytext(this)" />
    		

    3.js

    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
    <script>
    	var range;
    	var editor = document.querySelector('#saytext');
    	var selection = window.getSelection();
    
    	function initSaytext() {
    		editor.onclick = function() {
    			if (selection.rangeCount && selection.getRangeAt) {
    				range = selection.getRangeAt(0);
    				range.deleteContents()
    			}
    		}
    		editor.onkeyup = function() {
    			if (selection.rangeCount && selection.getRangeAt) {
    				// 设置最后光标对象
    				range = selection.getRangeAt(0);
    				range.deleteContents()
    			}
    		}
    	}
    	initSaytext();
    	//div中插入img
    	function changeSaytext(e) {
    		//内容
    		var emojiText = e.cloneNode(true);
    		$(emojiText).attr("onclick", ""); //清除点击事件
    		editor.focus();
    		range = selection.getRangeAt(0);
    		range.insertNode(emojiText);
    		range = range.cloneRange();
    		range.setStartAfter(emojiText);
    		// 使光标开始和光标结束重叠
    		range.collapse(true);
    		// 清除选定对象的所有光标对象
    		selection.removeAllRanges();
    		// 插入新的光标对象
    		selection.addRange(range);
    	}
    </script>
    

    效果:

    展开全文
  • python2和python3实现在图片上汉字

    万次阅读 2019-08-19 20:21:49
    文章目录Python2 在图片上汉字代码实现Python3 在图片上汉字代码实现遇到的问题 python2和python3实现在图片上汉字,最主要的区别还是内部编码方式不一样导致的,代码表现为些许的差别。理解了内部编码原理...


    python2和python3实现在图片上加汉字,最主要的区别还是内部编码方式不一样导致的,在代码上表现为些许的差别。理解了内部编码原理也就不会遇到这些问题了,以下代码是在WIN10系统上时测好用的。

    Python2 在图片上加汉字代码实现

    # -*- coding: cp936 -*-
    import cv2
    import numpy as np
    
    from PIL import Image, ImageDraw, ImageFont
    
    def ID_2_Word(txt):
    
        tmp_ID = txt.split(':')[0]
    
        value = txt.split(':')[-1]
    
        '''
        numbers = {
            'DS041' : "Coolant TEMP          ",
            'DS048' : "RPM                   ",
            'DS049' : "Speed                 ",
            'DS098' : "Oil level             ",
            'DS123' : "Control Module Voltage"
        }
    
        '''
        numbers = {
            'DS041' : "冷却液温度",
            'DS048' : "发动机转速",
            'DS049' : "车速   ",
            'DS098' : "燃油液位输入",
            'DS123' : "控制模块电压"
        }
        
    
        word = numbers.get(tmp_ID, None)
        
        result = str(word) + ':' + value
    
        #print(result)
    
        return result
    
    
    def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
        if (isinstance(img, np.ndarray)):  #判断是否OpenCV图片类型
            img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
        draw = ImageDraw.Draw(img)
        #fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")
        fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="gb2312") #cp936
        draw.text((left, top), text, textColor, font=fontText)
        return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)
    
    def layer1_show(img,data):
    
        
    
        frame =  cv2.resize(img, (1280, 720), interpolation=cv2.INTER_CUBIC)
    
        font = ImageFont.truetype('font/simsun.ttc',24,encoding="utf-8")
    
            
    
        OBD_string = data
       
        y0, dy = 50, 25
            
        for i, txt in enumerate(OBD_string.split(';')):
                
                
                #word = txt
            word = ID_2_Word(txt) #将OBD信号的ID转换为中文
            
            word = unicode(word,'gbk')
                #print(i, txt.split(':')[0])
            y = y0+i*dy
            
            frame = cv2ImgAddText(frame, word, 100, y, (255, 0, 0), 20)
    
            
        cv2.imshow("layer_1", frame)
        cv2.waitKey(0)
            
    
        
    
    
    
    if __name__ == '__main__':
        img = cv2.imread("map.png");
        
        data = "DS041: 88;DS048: 800;DS049: 64;DS098: 0.00;DS123: 0.00"
        layer1_show(img,data)
    
        
    
    

    在这里插入图片描述

    Python3 在图片上加汉字代码实现

    import cv2
    import numpy as np
    
    from PIL import Image, ImageDraw, ImageFont
    
    def ID_2_Word(txt):
    
        tmp_ID = txt.split(':')[0]
    
        value = txt.split(':')[-1]
    
        '''
        numbers = {
            'DS041' : "Coolant TEMP          ",
            'DS048' : "RPM                   ",
            'DS049' : "Speed                 ",
            'DS098' : "Oil level             ",
            'DS123' : "Control Module Voltage"
        }
    
        '''
        numbers = {
            'DS041' : "冷却液温度",
            'DS048' : "发动机转速",
            'DS049' : "车速   ",
            'DS098' : "燃油液位输入",
            'DS123' : "控制模块电压"
        }
        
    
        word = numbers.get(tmp_ID, None)
        
        result = str(word) + ':' + value
    
        #print(result)
    
        return result
    
    
    def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
        if (isinstance(img, np.ndarray)):  #判断是否OpenCV图片类型
            img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
        draw = ImageDraw.Draw(img)
        #fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")
        fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="gb2312") #cp936
        draw.text((left, top), text, textColor, font=fontText)
        return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)
    
    def layer1_show(img,data):
    
        
    
        frame =  cv2.resize(img, (1280, 720), interpolation=cv2.INTER_CUBIC)
    
        font = ImageFont.truetype('font/simsun.ttc',24,encoding="utf-8")
    
            
    
        OBD_string = data
      
    
        y0, dy = 50, 25
            
        for i, txt in enumerate(OBD_string.split(';')):
                
                
                #word = txt
            word = ID_2_Word(txt) #将OBD信号的ID转换为中文
            
            #word = unicode(word,'gbk')
               
            y = y0+i*dy
            
            frame = cv2ImgAddText(frame, word, 100, y, (255, 0, 0), 20)
    
            
        cv2.imshow("layer_1", frame)
        cv2.waitKey(0)
            
    
        
    
    
    
    if __name__ == '__main__':
        img = cv2.imread("map.png");
        
        data = "DS041: 88;DS048: 800;DS049: 64;DS098: 0.00;DS123: 0.00"
        layer1_show(img,data)
    
        
    
    

    在这里插入图片描述

    遇到的问题

    python2中:UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe8 in position 0: ordinal not in range(128)

    这是因为这是因为默认的是utf-8编码格式

    中文字符的Unicode编码0x0800-0xFFFF之间,(utf-8包含了部分汉字)
    当你试图将该“中文字符”转成U码的utf-8时超出了其范筹
    而GBK 规范收录了 ISO 10646.1 中的全部 CJK 汉字和符号,并有所补充,
    所以解决方法是将utf-8改为gbk

    word = unicode(word,'utf-8') 改为 word = unicode(word,'gbk')
    
    展开全文
  • 如何在图片上汉字?opencv & PIL
  • 这一节 我们简单讲一讲 给图片上添加文字的方法 我们继续使用节的代码(代码下载地址见节末尾 http://blog.csdn.net/lwjok2007/article/details/50887396) 首先我们将添加文字的View单独抽象出现实现 创建一个...
  • php图片输入中文文字解决乱码

    千次阅读 2010-04-26 16:08:00
    代码: $im = imagecreatefromjpeg("ok.jpg...$jpgnumid = "这是嵌入到图片文字,解决了乱码问题,上面的ok.jpg是同目录下的照片.使用它时,还需要有iconv模块!也就是说php.ini里将[iconv]iconv.input_encoding =
  • 请问如何在图片上显示文字,并可以用鼠标拖动该文字,拖动范围可以在图片内,...文字可以客户端由用户输入输入区域可以在图片。 也可以从服务器读取文字,以及上次记录的坐标值,显示在图片相应的坐标位置
  • 如何照片或者图片上增加文字 1、鼠标左键选中照片,点击鼠标右键,选择“编辑” 2、启动图片编译器 3、点击工具栏中的“A”,在图片需要添加的位置点击鼠标左键 4、添加文字输入栏 5、文字输入“ChengDu I ...
  • 今天做类似于qq那样的评论功能时,束手无策,网上到处找答案,最后一个很小很小的角落里受到了启发.认识了一个新的东西contenteditable. html代码如下: <div id="guo"...
  • 在图片上添加文字并生成图片

    千次阅读 2019-06-09 19:52:26
    在图片上添加文字并生成图片 开发工具与关键技术:Visual Studio 2015 作者:李德新 撰写时间:2019年6月04日 我们的日常生活中,我们经常能看到各样格式的表单,而且有时候我们还要去填写这些各种各样的不同的...
  • 可以将用户输入文字转化为图片进行保存,C#代码,能够进行成功的。有需要的可以放心下载
  • 输入文字就能生成图片的绿色小软件,无需安装,无病毒,无插件,放心使用。
  • 刚接触web设计,有个需求,页面中(文本框之类)可以输入文字,并能复制粘贴图片,mysql将输入的文字与图片一并保存。请问如何实现?先给个思路吧。谢谢了
  • 请问一张图片 怎么能实现旁边的文本框里输入文字 文字就在图片上显示?请问这是用什么来实现的 有做过JSP在图片上动态生成文字的朋友请指教
  • mfc有没有什么控件可以实现运行时输入文字图片图片可以放大缩小,像word那样?
  • 1、编辑区直接输入文字,文字输入完毕之后四周会出现一圈虚线框,一般称其为“蚂蚁线”;蚂蚁线的作用是为了使用样式工具条,而样式工具条是可以对蚂蚁线内的内容进行整体修改; 2、将鼠标移动到想要添加背景的...
  • opencv如何在图片上汉字

    千次阅读 2018-08-27 16:05:08
    str = '在图片上输出中文' # 需要先把输出的中文字符转换成Unicode编码形式 if not isinstance(str, unicode): str = str.decode('utf8') draw = ImageDraw.Draw(img_PIL) draw.text(position, str, ...
  • Qt5环境中,使用QPixmap展示一些图片,要求展示的图片上添加一些文字。 因为图片最终是用来制作动画效果的,所以需要将文字写入到图片QPixmap中,进行动画处理。 直接代码: QString name = QString("/wlcm/...
  • 想尝试绘制校徽 但是校徽下面那一行围绕圆的字不会打,请教一下各位大神 ...例如图片上的双流县黄水小学 可以实现吗?![图片说明](https://img-ask.csdn.net/upload/201905/13/1557762153_433057.jpg)
  • opencv在图片上添加文字

    千次阅读 2019-09-18 15:33:59
    import cv2 img=cv2.imread('1.jpg',cv2.IMREAD_COLOR) # 打开文件 ...# 图片对象、文本、像素、字体、字体大小、颜色、字体粗细 imgzi = cv2.putText(img, "zhengwen", (1100, 1164), font, 5.5, (0, ...
  • 本程序是写水星相机里的代码片,主要实现在图片上汉字。因为字符宽度的问题,OpenCV自带的cvInitFont和cvPutText函数不支持向图像中写入中文,所以用GDI+和位图操作实现。
  • 在图片指定位置输出文字,不管任何分辨率下文字的位置不变 1:要先将图片的宽高写固定, 2:将文字的标签包在图片的div中,利用padding-top确定文字的位置 说白了就是要将文字的位置相对图片定位好就行了 ...
  • 评论框图片表情输入工具分享

    千次阅读 2017-09-19 20:26:59
    分享一个个人觉得比较好用的图片表情输入工具,用于评论框中输入文字图片表情或 Emoji。前段时间发现于博客 AnotherHome。 原项目地址:https://github.com/DIYgod/OwO 预览:...
  • 添加文字使用text函数,难点在于保存,使用getframe来捕获,然后使用imwrite来保存,类似的教程网上很多,但是有的添加文字不是使用text函数,matlab2018已经不能用,有的并没有讲明如何保存加文字后的图片,有的图片...
  • 文字在图片上滚动显示

    千次阅读 2014-04-14 10:56:59
    1、以源码方复制粘贴以下代码。2、源码中背景图片地址和文字换成自己想要的。3、回到设计窗口,调整文字和图片。4、相关属于可以自己修改。输入文字

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 229,226
精华内容 91,690
关键字:

怎样在图片上输入文字