拍摄照片后微信怎么发送原图照片

44102人阅读
android开发(34)
需求:做仿新浪发微博的项目,能够上传图片还有两外一个项目用到手机拍摄图片,这两个都需要把图片上传到服务器
遇到问题:有的手机拍摄的图片旋转90度,有的图片旋转了180度,有的手机是正常的,服务器要求的是正的,这样问题就来了,不能用户发个照片在微博上看到的是被旋转了的啊,另外一个项目里旋转了的图片直接匹配出现问题,这个更严重。
解决:开始的时候在网上没有找到很好的解决办法,谷歌百度的搜了一通,想到第一种解决方式,当手机拍照结束,在返回结果处理里面立即跳转到一个新的页面,在新的页面里让用户自己手动去旋转图片,然后点击确定。就可以上传到服务器正着的图片了;第二种解决方式,这是在论坛里发现的一个方法,可以获取图片的属性,读取图片的旋转角度。
第一种方式代码:
在onActivityResult里面处理跳转
Intent intent = new Intent(SendMicoBlog.this, RotaingActivity.class);
MyApp myApp = (MyApp)getApplication();
myApp.setName(bitmap);//修改之后的名称
myApp.setPhoto(isPhoto);
startActivityForResult(intent, 1);
在RotaingActivity里面就可以作相应的旋转处理了
//获取bitmap
MyApp myApp = (MyApp)getApplication();
bitmap = myApp.getName();
System.out.println(&RotaingActivity w = & + bitmap.getWidth() + &H = & + bitmap.getHeight());
myBitmap =
myWidth = bitmap.getWidth();
myHeight = bitmap.getHeight();
// 创建操作图片用的matrix对象
matrix = new Matrix();
Drawable drawable = ImageDispose.bitmapToDrawable(bitmap);
imageView.setBackgroundDrawable(drawable);
btnCancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
RotaingActivity.this.finish();
btnRightRotaing.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
myBitmap = rotaingImageView(-90);
btnLeftRotaing.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
myBitmap =
rotaingImageView(+90);
btnOK.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
MyApp myApp = (MyApp)getApplication();
myApp.setName(myBitmap);//修改之后
System.out.println(&OK resultcoder&);
Intent intent = new Intent(RotaingActivity.this, SendMicoBlog.class);
setResult(6, intent);
RotaingActivity.this.finish();
Bitmap rotaingImageView(int angle2) {
//旋转图片 动作
matrix.postRotate(angle2);
System.out.println(&angle2=& + angle2);
// 创建新的图片
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,
myWidth, myHeight, matrix, true);
Drawable drawable = ImageDispose.bitmapToDrawable(resizedBitmap);
imageView.setBackgroundDrawable(drawable);
return resizedB
第二种方式:就简单多了,直接自己出偷着把照片给处理了,不需要用户的操作,这样体验会更好一点。
在onActivityResult里面处理
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inSampleSize = 8;
File file = new File(SD_CARD_TEMP_DIR);
* 获取图片的旋转角度,有些系统把拍照的图片旋转了,有的没有旋转
int degree = ImageDispose.readPictureDegree(file.getAbsolutePath());
Bitmap cameraBitmap = BitmapFactory.decodeFile(SD_CARD_TEMP_DIR, bitmapOptions);
bitmap = cameraB
* 把图片旋转为正的方向
bitmap = ImageDispose.rotaingImageView(degree, bitmap);
upload(bitmap);
* 旋转图片
* @param angle
* @param bitmap
* @return Bitmap
public static Bitmap rotaingImageView(int angle , Bitmap bitmap) {
//旋转图片 动作
Matrix matrix = new Matrix();;
matrix.postRotate(angle);
System.out.println(&angle2=& + angle);
// 创建新的图片
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,
bitmap.getWidth(), bitmap.getHeight(), matrix, true);
return resizedB
* 读取图片属性:旋转的角度
* @param path 图片绝对路径
* @return degree旋转的角度
public static int readPictureDegree(String path) {
int degree
ExifInterface exifInterface = new ExifInterface(path);
int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
degree = 90;
case ExifInterface.ORIENTATION_ROTATE_180:
degree = 180;
case ExifInterface.ORIENTATION_ROTATE_270:
degree = 270;
} catch (IOException e) {
e.printStackTrace();
这样就搞定了,此时你上传的照片就是正的了。
第一种方式的图片
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:400165次
积分:3212
积分:3212
排名:第7354名
原创:32篇
评论:143条
(1)(1)(2)(1)(2)(1)(2)(3)(3)(4)(1)(2)(3)(3)(4)(3)(1)赶紧学会如何用微信发送照片原图
现在手机拍照的功能和质量都非常强大了,平时大家参加聚会、结伴出游的时候大家总是喜欢拍个不停,分别的时候相互道别回家互传照片,却不知道微信有自动压缩图片的默认设置。
一般来说常见的800万像素的手机,照片大小都在1MB以上,但是传到微信别人打开再保存就变成100K左右了。1300万像素的手机拍摄的照片大多在1MB-4MB之间。
有时候我们因为个人隐私的问题照片被压缩、模糊了也是好事,但是有时纪念性、收藏性的照片被压缩了就让人很恼火了。
本文就是给大家科普一下如何用微信发送一点都没删减的照片原图。
注意原图尺寸较大,最好在WIFI下发送接受。
首先点“+”号,选发送“图片”。
点“从相册选择”。点“拍照”也可以选择发送原图,方法和下面所说的一样。
点选需要发送的照片,最多9张。注意选好了千万别点右上角的“发送”,要点击右下角的“预览”。
关键就是这一步了,点击左下角的“原图”左侧的圆圈型复选按钮&,“原图”二字的右侧马上就会出现原始图片大小的合计。
这里只是示意图本身不太大,总计只有706K,一般五张照片都在10MB左右!!!
千万注意流量!!!
最后在点击右上角的发送按钮,大功告成。
其他提示:
1、因为原图特别大,发送原图速度较慢。
2、接受也比较慢,另外就是接收完成后在微信里打开图片看到的还是压缩后的,最好去相机的图库查看就可以放大看细节了。
3、直接选择“拍照”后拍出的照片左下角也有“原图”的点选按钮,不过每次只能发送一张照片。
4、最后再次提醒越是高档手机像素越高的照片也就越大,发送原图流量巨大,千万注意!
最后祝大家拍照开心!!!分享快乐!!!
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。摄影_图文攻略_最新实用攻略_攻略大全_百度攻略
相关攻略推荐
当前位置: > 文章阅读页
如何避免Camera Raw处理后输出的图片色彩发灰 用PS的Camera Raw处理好的图片,转到PS中存储出来的图片用Acd see等软件查看的时候(在网页上等直接在显示器上查看的图片也一样),却发现和Photoshop里面的显示的颜色不一样:颜色饱和度降低了,图片发灰,没有原来处理的时候鲜艳,之前在Camera Raw中所做的工作全都白费了。这是什么原因呢?这是因为在用数码相机拍摄照片的时候,所选择的颜色空间与Camera Raw中的颜色空间不一致所造成的。大多数数码相机里都有和颜色空间之分,而Adobe RGB颜色空间的色彩表现度要大于sRGB的颜色空间的色彩表现度。虽然AdobeRGB的颜色空间表现出的色彩比sRGB的丰富,但是需要专用的显示器才能显示出来。专用显示器的价格昂贵,而sRGB空间用于普通显示器,浏览器上网页浏览的图片和用看图软件看图等,都用的是sRGB空间模式。所以,我们只要统一了在Camera Raw中打开和输出存储文件的颜色空间,颜色的偏差就会避免或者降低。 经过摸索和试验,找到了一些解决的方法。下面就介绍几种可以避免的方法。 一、在用Camera Raw打开图片文件时就设置好sRGB色彩空间 1、 在打开Camera Raw文件的面板下面就有个颜色空间的设置,点击这个设置。 12、 在弹出的“工作流程选项”面板中选择“sRGB IEC”颜色空间,确定。 3、 这样如果在下面的方法存储为Web格式的时候,可以不勾选“转换为sRGB”,但还是勾选了保险一些。这是一个相对一劳永逸的方法。二、将输出的图片存储为Web,可以防止输出的图片颜色发生改变 1、 首先,在Photoshop的“编辑”菜单“首选项”&“Camera Raw首选项”的设置中选择“自动打开所有受支持的JPGE”后,再打开jpg图片。设置如下面两图所示: 2
2、打开图片之后,由于之前我们设置了“自动打开所有受支持的JPGE”,所以会自动在Camera Raw中打开该图片的文件。3、 在Camera Raw中处理图片完成后,导入到PS,输出图片进行存储的时候,选择“文件”& “存储为Web所用格式”。 4、在弹出如上所示“存储为Web所用格式”面板时,勾选“转换为sRGB”,然后存储。3 三、在Photoshop中输出的时候,预先预览模拟软打样的效果 1、 在“视图”中菜单选择“校样设置”,再选择“Internet标准RGB(sRGB)(S)”。 2、 也可以自定义。选择“视图”菜单&“校样颜色”&“自定(U)…”。可以模拟出各种色彩空间输出后的颜色效果,以供观察比较,作出输出图片色彩空间的选择。 3、 点选后,在弹出的“自定校样条件”面板中点击“要模拟的设备(D):”,就会弹出多项选择,选择“sRGB IEC”,当然也可以选择其它色彩空间。 注意要将“预览”勾上,才能显示出效果来。 以上三种方法应区别情况使用,个别系统的设置可能不相同。本人在这里抛出一块粗糙的砖头,请大家继续探索,以挖掘出更好的宝玉来! 4
相似攻略推荐Java的手机QQ如何拍照发送图片?选择字号:
操作方法:打开与好友的聊天框=》点击相机小图标=》拍照=》发送,完成操作后即可发送该张图片给您的好友。
以上信息是否已解决您的问题?}

我要回帖

更多关于 微信照片原图发送 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信