精华内容
下载资源
问答
  • Android裁剪图片为圆形图片Demo

    千次下载 热门讨论 2013-11-16 19:21:02
    Android裁剪图片为圆形图片Demo
  • 图片裁剪Demo

    2015-03-21 14:52:07
    这是我在学习ios的过程中写的一个demo,使用Quartz 2D对图片进行裁剪,并将新的图片保存到文件中。
  • 图片上传demo

    2015-12-01 10:56:58
    图片上传功能几乎是每一个项目都必备的,而没遇到一次都要重新写一篇,就陷入了重复造轮子的圈子中,所以今天把这个上传图片的小demo上传到网上,供大家以后遇到的时候直接使用,提供方便,避免做重复的事情。
  • 图片裁剪demo

    2016-04-12 09:38:03
    比较好的一个图片裁剪的demo,可以收藏下 https://github.com/Yalantis/uCrop

    比较好的一个图片裁剪的demo,可以收藏下

    https://github.com/Yalantis/uCrop

    alt text


    展开全文
  • php上传图片demo

    2014-03-09 22:29:36
    php上传图片demo , 有需要的拿去
  • 利用openCV识别图片Demo

    热门讨论 2017-08-18 17:58:05
    在安卓中,利用openCV识别图片Demo
  • 滑动图片验证码demo

    千次下载 热门讨论 2015-08-07 14:33:22
    极验验证更改后的版本,该demo导入eclipse直接可用,带有详细使用说明文档,验证通过发送短信
  • android_本地多图片选择Demo

    千次下载 热门讨论 2014-04-08 17:34:50
    所以本人就开发了类似 类似仿微信的本地多张图片选择的DEMO. 本DEMO做的非常简单. 移植也好移植. 在DEMO中ImgsActivity.sendfiles方法里已经获取到了你们选择的本地路径. 而且移植时只需要把 com.exmaple.logic包...
  • 七牛图片上传demo

    热门讨论 2015-04-21 16:43:40
    七牛图片上传demo,需自己获取token
  • kafka传输图片demo

    千次阅读 2019-08-08 09:32:26
    因为项目推进,需要在框架里实现新的功能,将已经写好的利用kafka实现图片的生产消费demo在博客中存档 VideoEventGenerator类 import org.apache.kafka.clients.producer.Producer; import org.apache.kafka.clients...

    因为项目推进,需要在框架里实现新的功能,将已经写好的利用kafka实现图片的生产消费demo在博客中存档

    VideoEventGenerator类

    import org.apache.kafka.clients.producer.Producer;
    import org.apache.kafka.clients.producer.ProducerRecord;
    import org.apache.log4j.Logger;
    import org.opencv.core.Core;
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.FileInputStream;
    import java.io.OutputStream;
    import java.sql.Timestamp;
    
    /**
     * 图片序列化发送实现类
     * @author zhoutao
     * @data 2019/8/3
     */
    public class VideoEventGenerator implements Runnable {
        //记录日志
        private static final Logger logger = Logger.getLogger(VideoEventGenerator.class);
        private String cameraId;
        private String url;
        private Producer<String,byte[]> producer;
        private String topic;
        //构造方法
        public VideoEventGenerator(String cameraId, String url, Producer<String,byte[]> producer, String topic) {
            this.cameraId = cameraId;
            this.url = url;
            this.producer = producer;
            this.topic = topic;
        }
        //加载opencv库
    //    static {
    //        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    //    }
        //run方法
        public void run(){
            logger.info("开始处理相机:"+cameraId+"它的url是"+url);
            try{
                videoprocess(cameraId,url,producer,topic);
            }catch(Exception e){
                logger.error(e.getMessage());
            }
        }
        //将图片利用BufferedImage转为字节数组
        private void videoprocess(String cameraId,String url,Producer<String,byte[]> producer, String topic)throws Exception{
            String timestamp = new Timestamp(System.currentTimeMillis()).toString();
            BufferedImage image = ImageIO.read(new FileInputStream(url));
            OutputStream bOut = new ByteArrayOutputStream();
            ImageIO.write(image,"jpg",bOut);
            byte[]data=((ByteArrayOutputStream) bOut).toByteArray();
            ProducerRecord<String, byte[]> datas = new ProducerRecord<String, byte[]>(topic, cameraId,data);
            try {
                producer.send(datas);
    //            logger.info("Generated events for cameraId="+cameraId+" timestamp="+timestamp);
            }catch(Exception e) {
                e.printStackTrace();
            }finally{
                logger.info("Generated events for cameraId="+cameraId+" timestamp="+timestamp);
            }
        }
    }
    
    

    VideoStreamCollector类

    import java.awt.image.BufferedImage;
    import java.io.*;
    import java.util.Collections;
    import java.util.Properties;
    
    import org.apache.kafka.clients.consumer.ConsumerRecord;
    import org.apache.kafka.clients.consumer.ConsumerRecords;
    import org.apache.kafka.clients.consumer.KafkaConsumer;
    import org.apache.kafka.clients.producer.KafkaProducer;
    import org.apache.kafka.clients.producer.Producer;
    import org.apache.log4j.Logger;
    
    import javax.imageio.ImageIO;
    
    /**
     *
     * 1.创建kafka生产者
     * 2.采集图片多线程发送
     * @author zhoutao
     * @data 2019/8/2
     */
    public class VideoStreamCollector {
        private static final Logger logger = Logger.getLogger(VideoEventGenerator.class);
    
        public static void main(String[] args) throws Exception {
    
            //将从配置文件读取到的配置加入Properties类中
            Properties prop = PropertyFileReader.readPropertyFile();
            Properties properties = new Properties();
            Properties properties2=new Properties();
            properties.put("bootstrap.servers", prop.getProperty("kafka.bootstrap.servers"));
            properties.put("acks", prop.getProperty("kafka.acks"));
            properties.put("retries", prop.getProperty("kafka.retries"));
            properties.put("batch.size", prop.getProperty("kafka.batch.size"));
            properties.put("linger.ms", prop.getProperty("kafka.linger.ms"));
            properties.put("max.request.size", prop.getProperty("kafka.max.request.size"));
            properties.put("compression.type", prop.getProperty("kafka.compression.type"));
            properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
            properties.put("value.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer");
            properties2.put("bootstrap.servers", prop.getProperty("kafka.bootstrap.servers"));
            properties2.put("group.id", "video");
            properties2.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
            properties2.put("value.deserializer", "org.apache.kafka.common.serialization.ByteArrayDeserializer");
            //创建生产者
            Producer<String, byte[]> producer = new KafkaProducer<String,byte[]>(properties);
            generateIoTEvent(producer,prop.getProperty("kafka.topic"),prop.getProperty("camera.id"),prop.getProperty("camera.url"));
            //创建消费者
            KafkaConsumer<String,byte[]> consumer=new KafkaConsumer<String,byte[]>(properties2);
            //订阅主题
            consumer.subscribe(Collections.singletonList("kafkatest"));
            //接收数据
            acceptData(consumer);
        }
        //创立图片事件
        private static void generateIoTEvent(Producer<String, byte[]> producer, String topic, String camId, String videoUrl) throws Exception {
            String[] urls = videoUrl.split(",");
            String[] ids = camId.split(",");
            if(urls.length != ids.length){
                throw new Exception("相机数与图片数应相同");
            }
            logger.info("图片路数:"+urls.length);
            //多线程调用发送实现类
            for(int i=0;i<urls.length;i++){
                Thread t = new Thread(new VideoEventGenerator(ids[i].trim(),urls[i].trim(),producer,topic));
                t.start();
            }
        }
        //接收数据方法
        private  static  void acceptData( KafkaConsumer<String,byte[]> consumer)throws Exception{
            try{
                while(true){
                    ConsumerRecords<String,byte[]> records=consumer.poll(100);
                    for(ConsumerRecord<String,byte[]> record:records){
                        System.out.println("获取数据");
                        byte[] data=record.value();
                        ByteArrayInputStream in = new ByteArrayInputStream(data);
                        BufferedImage image = ImageIO.read(in);
                        Long time=System.currentTimeMillis();
                        OutputStream bOut = new FileOutputStream("C:/Users/Administrator.000/Desktop/"+time.toString()+".jpg");
                        ImageIO.write(image,"jpg",bOut);
                    }
                }
            }catch(Exception ex){
                ex.printStackTrace();
            }finally {
                consumer.close();
            }
        }
    
    }
    

    PropertyFileReader类

    import org.apache.log4j.Logger;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    /**
     *
     *读取kafka配置文件
     * @author zhoutao
     * @data 2019/8/2
     */
    public class PropertyFileReader {
        private static final org.apache.log4j.Logger logger = Logger.getLogger(PropertyFileReader.class);
        private static Properties prop = new Properties();
    
        public static Properties readPropertyFile() throws Exception {
            if (prop.isEmpty()) {
                //实现获取在classpath路径下的资源文件的输入流。
                InputStream input = PropertyFileReader.class.getClassLoader().getResourceAsStream("stream-collector.properties");
                try {
                    prop.load(input);
                } catch (IOException e) {
                    logger.error(e);
                    throw e;
                } finally {
                    if (input != null) {
                        input.close();
                    }
                }
            }
            return prop;
        }
    }
    

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>edu.zt</groupId>
        <artifactId>mavenDemo_idea</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <!-- kafka -->
            <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka -->
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_2.11</artifactId>
                <version>0.10.0.1</version>
            </dependency>
            <!-- gson -->
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.8.0</version>
            </dependency>
            <!-- commons-lang -->
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <!-- log4j -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
            <!-- opencv -->
            <!-- https://mvnrepository.com/artifact/opencv/opencv -->
            <dependency>
                <groupId>org.bytedeco</groupId>
                <artifactId>opencv-platform</artifactId>
                <version>4.1.0-1.5.1</version>
            </dependency>
        </dependencies>
    
    
    </project>
    
    

    log4j.properties

    # Root logger option
    log4j.rootLogger=INFO, file, stdout
    
    # Direct log messages to a log file
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=F:/tmp/stream-collector.log
    log4j.appender.file.MaxFileSize=10MB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    
    # Direct log messages to stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    

    Stream-collector.properties

    # Kafka properties
    kafka.bootstrap.servers=10.34.51.202:9092
    kafka.acks=1
    kafka.retries=1
    # 20 MB
    kafka.batch.size=20971520
    kafka.linger.ms=5
    kafka.compression.type=gzip
    # 2 MB
    kafka.max.request.size=2097152
    kafka.topic=kafkatest
    //url和id以逗号分隔,顺序必须对应
    camera.url=C:/Users/Administrator.000/Desktop/timg.jpg,C:/Users/Administrator.000/Desktop/timg2.jpg
    camera.id=cam1,cam2
    
    展开全文
  • 双指缩放图片,双击放大缩小图片DEMO,用的是开源库。
  • 利用GridView实现图片批量上传服务器的功能,demo下载下来直接可以运行。其中存在一个bug,bug解决方案请看博客:http://www.cnblogs.com/1925yiyi/p/7419021.html
  • android图片处理集合demo

    热门讨论 2012-02-21 19:03:45
    这个里面是图片处理系列的一个集合demo,里面包含了图片处理系列的所有代码,写的比较乱,没有整理,希望对大家有帮助。
  • 微擎上传图片demo

    千次阅读 2017-07-19 18:22:22
    1.下载好demo,安装模块 2,.看你的app目录下有没有js,和css样式,所有js,css我都放在index.html里面的,加进去 3.数据库接收直接ajax传pic就可以了 4.demo链接点击打开链接

    1.下载好demo,安装模块

    2,.看你的app目录下有没有js,和css样式,所有js,css我都放在index.html里面的,加进去

    3.数据库接收直接ajax传pic就可以了

    4.demo链接点击打开链接

    5.这个没有安卓拍照功能,带安卓拍照请加Q1193855371

    展开全文
  • ionic 图片上传Demo

    千次阅读 2015-11-13 10:52:45
    ionic 图片上传Demo 第1步 安装插件 1.1安装cordovaCamera 说明:这个插件是用来拍照,或者说是打开手机上面的照相机功能的 操作:打开DOS,进入ionic项目所在的目录, 输入命令:cordova plugin add ...

    ionic 图片上传Demo

    1步 安装插件

    1.1安装cordovaCamera

    说明:这个插件是用来拍照,或者说是打开手机上面的照相机功能的

    操作:打开DOS,进入ionic项目所在的目录,

    输入命令:cordova plugin add cordova-plugin-camera,等待安装完毕后,去plugins目录下查看如果有cordova-plugin-camera这个文件夹,表示安装成功。

    PS还可以输入以下两个命令进行安装,不过这是老版本的安装方法

    1.cordova plugin add org.apache.cordova.camera

    2.cordova plugin add https://github.com/apache/cordova-plugin-camera.git

     

    1.2安装cordovaFileTransfer

    说明:这个插件是用来上传文件使用的

    操作:打开DOS,进入ionic项目所在的目录,

    输入命令:cordova plugin add cordova-plugin-file-transfer,等待安装完毕后,去plugins目录下查看如果有cordova-plugin-file-transfer这个文件夹,表示安装成功

    2步 编写页面

    <div class="list">
        <div class="item">
            <div class="buttons">
                <button class="button button-small button-balanced" ng-click="addPhoto();">添加</button>
                <button class="button button-small button-balanced"  ng-click="uploadPhoto();">上传</button>
            </div>
        </div>
        
        <div class="item" ng-show="imageSrc != undefined">
            <img ng-src="{{imageSrc}}" class="full-image" style="width:150px;height:150px;"/>
        </div>
    </div>

     

    3步 编写JS

    3.1controller中注入相关服务

    $ionicActionSheet

    $cordovaCamera

    $cordovaFileTransfer

    3.2编写下面JS

    // 添加图片
    $scope.addPhoto = function () {
        $ionicActionSheet.show({
            cancelOnStateChange: true,
            cssClass'action_s',
            titleText"请选择获取图片方式",
            buttons[
                {text'相机'},
                {text'图库'}
            ],
            cancelText'取消',
            cancel: function () {
                return true;
            },
            buttonClicked: function (index) {

                switch (index) {
                    case 0:
                        $scope.takePhoto();
                        break;
                    case 1:
                        $scope.pickImage();
                        break;
                    default:
                        break;
                }
                return true;
            }
        });
    };

    //拍照
    $scope.takePhoto = function () {
        var options {
            quality100,
            destinationTypeCamera.DestinationType.FILE_URI,//Choose the format of the return value.
            sourceTypeCamera.PictureSourceType.CAMERA,//资源类型:CAMERA打开系统照相机;PHOTOLIBRARY打开系统图库
            targetWidth150,//头像宽度
            targetHeight150//头像高度

        };

        $cordovaCamera.getPicture(options)
            .then(function (imageURI) {
                //Success
                $scope.imageSrc imageURI;
                $scope.uploadPhoto();
            }, function (err) {
                // Error
            });
    };
    //选择照片
    $scope.pickImage = function () {
        var options {
            quality100,
            destinationTypeCamera.DestinationType.FILE_URI,//Choose the format of the return value.
            sourceTypeCamera.PictureSourceType.SAVEDPHOTOALBUM,//资源类型:CAMERA打开系统照相机;PHOTOLIBRARY打开系统图库
            targetWidth150,//头像宽度
            targetHeight150//头像高度
        };

        $cordovaCamera.getPicture(options)
            .then(function (imageURI) {
                //Success
                $scope.imageSrc imageURI;
                $scope.uploadPhoto();
            }, function (err) {
                // Error
            });
    };


    $scope.uploadPhoto = function () {
        var requestParams "?callback=JSON_CALLBACK";

        var server encodeURI('注意这写的是你的后台请求地址' requestParams);
        var fileURL $scope.imageSrc;
        var options {
            fileKey"file",//相当于form表单项的name属性
            fileNamefileURL.substr(fileURL.lastIndexOf('/'1),
            mimeType"image/jpeg"
        };

        $cordovaFileTransfer.upload(serverfileURLoptions)
            .then(function (result) {
                // Success!
                alert("Code = " result.responseCode "Response = " result.response"Sent = " result.bytesSent);
            }, function (err) {
                // Error
                 alert("An error has occurred: Code = " error.code "upload error source " error.source "upload error target " error.target);
            }, function (progress) {
                // constant progress updates
            });

    };

    4步  编写后台代码

    PS:在此以springMVC中的controller作为后台

     

     

    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

     

    String callback = request.getParameter("callback");

    //获取图片项

    MultipartFile multipartFile = multipartRequest.getFile("file");

    //获取图片的相关信息

    String fileName = multipartFile.getOriginalFilename();//文件名

    if(fileName.contains("?")){

    fileName = fileName.substring(0, fileName.indexOf("?"));

    }

    long fileSize = multipartFile.getSize();//文件大小

     

    /*************上传图片到服务器start******************/

    String uploadBasePath = request.getRealPath("/")+"upload-img\\original\\";

     

    //上传路径

    String uploadPath = uploadBasePath.concat(fileName);

     

    //根据图片上传的最终路径,创建目录

    DirectoryUtils.createDir(uploadPath);

              

    //保存图片到服务器

    File destFile = new File(uploadPath);

    multipartFile.transferTo(destFile);

    /*************上传图片到服务器end******************/

     

     

    /*************向前台返回结果******************/

     

    String  responseString  =JSONPUtil.toJSONPStr(“{\”state\”:\”success\”}”,callback);

    out.print(responseString);

    out.flush();

     

    附上JSONPUtil类的代码:

    /**

     * JSON格式的字符串转换成JSONP格式

     *

     */

    public class JSONPUtil {

    private static String responseString = "";

    public static String toJSONPStr(String jsonStr , String callback){

    if (callback != null && !callback.isEmpty()) {

        responseString = callback + "(" + jsonStr + ")";

    else {

        responseString = jsonStr;

    }

    return responseString;

    }

    }

    展开全文
  • ueditor jsp 图片上传demo

    热门讨论 2013-07-27 12:13:29
    一直没招到最新版的jsp demo 花了点时间自己琢磨下 给大家分享下
  • 图片滑动验证Demo

    千次阅读 2016-12-27 17:39:51
    首先说一下思路,首先绘制一个闭合路径来作为可移动的图片块的形状,在对应的背景图片位置绘制该路径并填充为灰色,接着在新建一个同样大小的图片,背景设为透明,以及一个对应新的Canvas,利用该路径切割Canvas,并...
  • 微擎上传图片附带demo

    千次阅读 2017-05-15 14:57:34
    demo下载点击打开链接
  • python request 下载 图片 demo

    千次阅读 2017-04-06 07:43:10
    利用流传输下载图片# -*- coding: utf-8 -*- import requestsdef download_image(): ... demo:下载图片 :return: """ headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHT
  • WPF 切换图片动画效果Demo

    热门讨论 2010-09-28 16:54:42
    WPF 切换图片动画效果 Demo 在同一个Image控件中,改变Source属性时动画实现
  • Js图片轮播功能DEMO

    千次阅读 2016-06-03 16:42:10
    去年为我们的客户端做了一个下载页面,页面里有个图片轮播功能,介绍产品特性。过了一年之后自己都忘记当时是怎么实现的了,最近重新看了这块儿的代码,总结了下,同时拿来分享给大家。 先看效果图: 轮播的原理很...
  • 安卓怎么实现图片的本地获取和上传,求大神指教,最好有demo
  • android 图片浏览器 demo

    千次阅读 2014-10-09 09:59:26
    先上效果图 其中第2张图片是移动一行效果。...每个fragment最多显示2张图片,如果不够2个隐藏多余的,在解析图片数据时计算每一个fragment应显示的图片 图片下载工具直接使用universal-image-loader 注意一下
  • 简单的图片抓取demo

    2015-07-04 10:35:51
    简单的图片抓取demo 源代码下载地址:http://www.zuidaima.com/share/1568741405854720.htm

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,857
精华内容 9,142
关键字:

demo图片