苹果机微信qq头像没有了怎么办只能剪裁一半怎么办

高仿微信头像截取 打造不一样的自定义控件 - Hongyang
- 博客频道 - CSDN.NET
14608人阅读
转载请表明出处:,本文出自:1、概述前面已经写了关于检测手势识别的文章,如果不了解可以参考:。首先本篇文章,将对之前博客的ZoomImageView代码进行些许的修改与改善,然后用到我们的本篇博客中去,实现仿微信的头像截取功能,当然了,个人觉得微信的截取头像功能貌似做得不太好,本篇博客准备去其糟粕,取其精华;最后还会见识到不一样的自定义控件的方式,也是在本人博客中首次出现,如果有兴趣可以读完本篇博客,希望可以启到抛砖引玉的效果。2、效果分析1、效果图:我们来看看妹子的项链,嗯,妹子项链还是不错的~2、效果分析根据上面的效果,我们目测需要自定义两个控件,一个就是我们的可自由缩放移动的ImageView,一个就是那个白色的边框;然后一起放置到一个RelativeLayout中;最后对外公布一个裁剪的方法,返回一个Bitmap;暂时的分析就这样,下面我们来写代码~首先是白色框框那个自定义View,我们叫做ClipImageBorderView3、ClipImageBorderView分析下这个View,其实就是根据在屏幕中绘制一个正方形,正方形区域以外为半透明,绘制这个正方形需要与屏幕左右边距有个边距。我们准备按如下图绘制:按顺序在View的onDraw里面绘制上图中:1、2、3、4,四个半透明的区域,然后在中间正方形区域绘制一个正方形下面看下代码:package com.zhy.
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.graphics.Paint.S
import android.util.AttributeS
import android.util.TypedV
import android.view.V
* @author zhy
public class ClipImageBorderView extends View
* 水平方向与View的边距
private int mHorizontalPadding = 20;
* 垂直方向与View的边距
private int mVerticalP
* 绘制的矩形的宽度
private int mW
* 边框的颜色,默认为白色
private int mBorderColor = Color.parseColor(&#FFFFFF&);
* 边框的宽度 单位dp
private int mBorderWidth = 1;
private Paint mP
public ClipImageBorderView(Context context)
this(context, null);
public ClipImageBorderView(Context context, AttributeSet attrs)
this(context, attrs, 0);
public ClipImageBorderView(Context context, AttributeSet attrs, int defStyle)
super(context, attrs, defStyle);
// 计算padding的px
mHorizontalPadding = (int) TypedValue.applyDimension(
PLEX_UNIT_DIP, mHorizontalPadding, getResources()
.getDisplayMetrics());
mBorderWidth = (int) TypedValue.applyDimension(
PLEX_UNIT_DIP, mBorderWidth, getResources()
.getDisplayMetrics());
mPaint = new Paint();
mPaint.setAntiAlias(true);
protected void onDraw(Canvas canvas)
super.onDraw(canvas);
//计算矩形区域的宽度
mWidth = getWidth() - 2 * mHorizontalP
//计算距离屏幕垂直边界 的边距
mVerticalPadding = (getHeight() - mWidth) / 2;
mPaint.setColor(Color.parseColor(&#aa000000&));
mPaint.setStyle(Style.FILL);
// 绘制左边1
canvas.drawRect(0, 0, mHorizontalPadding, getHeight(), mPaint);
// 绘制右边2
canvas.drawRect(getWidth() - mHorizontalPadding, 0, getWidth(),
getHeight(), mPaint);
// 绘制上边3
canvas.drawRect(mHorizontalPadding, 0, getWidth() - mHorizontalPadding,
mVerticalPadding, mPaint);
// 绘制下边4
canvas.drawRect(mHorizontalPadding, getHeight() - mVerticalPadding,
getWidth() - mHorizontalPadding, getHeight(), mPaint);
// 绘制外边框
mPaint.setColor(mBorderColor);
mPaint.setStrokeWidth(mBorderWidth);
mPaint.setStyle(Style.STROKE);
canvas.drawRect(mHorizontalPadding, mVerticalPadding, getWidth()
- mHorizontalPadding, getHeight() - mVerticalPadding, mPaint);
我们直接预设了一个水平方向的边距,根据边距计算出正方形的边长,接下来就是按照上图分别会1、2、3、4四个区域,最后就是绘制我们的正方形~~代码还是很简单的~~我们的ClipImageBorderView就搞定了,我们决定来测试一下:布局文件:&RelativeLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&@drawable/a&
&com.zhy.view.ClipImageBorderView
android:id=&@+id/id_clipImageLayout&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent& /&
&/RelativeLayout&效果图:故意放了个背景,没撒用,就是为了能看出效果,可以看到我们的框框绘制的还是蛮不错的~~嗯,这个框框距离屏幕左右两侧的距离应该抽取出来,嗯,后面再说~4、ClipZoomImageView我们准备对我们原先的ZoomImageView进行简单的修改,修改的地方:1、在onGlobalLayout方法中,如果图片的宽或者高只要一个小于我们的正方形的边长,我们会直接把较小的尺寸放大至正方形的边长;如果图片的宽和高都大于我们的正方形的边长,我们仅仅把图片移动到我们屏幕的中央,不做缩放处理;2、根据步骤1,我们会获得初始的缩放比例(默认为1.0f),然后SCALE_MID , 与&SCALE_MAX 分别为2倍和4倍的初始化缩放比例。3、图片在移动过程中的边界检测完全根据正方形的区域,图片不会在移动过程中与正方形区域产生内边距4、对外公布一个裁切的方法部分代码:/**
* 水平方向与View的边距
private int mHorizontalPadding = 20;
* 垂直方向与View的边距
private int mVerticalP
public void onGlobalLayout()
Drawable d = getDrawable();
if (d == null)
Log.e(TAG, d.getIntrinsicWidth() + & , & + d.getIntrinsicHeight());
// 计算padding的px
mHorizontalPadding = (int) TypedValue.applyDimension(
PLEX_UNIT_DIP, mHorizontalPadding,
getResources().getDisplayMetrics());
// 垂直方向的边距
mVerticalPadding = (getHeight() - (getWidth() - 2 * mHorizontalPadding)) / 2;
int width = getWidth();
int height = getHeight();
// 拿到图片的宽和高
int dw = d.getIntrinsicWidth();
int dh = d.getIntrinsicHeight();
float scale = 1.0f;
if (dw & getWidth() - mHorizontalPadding * 2
&& dh & getHeight() - mVerticalPadding * 2)
scale = (getWidth() * 1.0f - mHorizontalPadding * 2) /
if (dh & getHeight() - mVerticalPadding * 2
&& dw & getWidth() - mHorizontalPadding * 2)
scale = (getHeight() * 1.0f - mVerticalPadding * 2) /
if (dw & getWidth() - mHorizontalPadding * 2
&& dh & getHeight() - mVerticalPadding * 2)
float scaleW = (getWidth() * 1.0f - mHorizontalPadding * 2)
float scaleH = (getHeight() * 1.0f - mVerticalPadding * 2) /
scale = Math.max(scaleW, scaleH);
initScale =
SCALE_MID = initScale * 2;
SCALE_MAX = initScale * 4;
Log.e(TAG, &initScale = & + initScale);
mScaleMatrix.postTranslate((width - dw) / 2, (height - dh) / 2);
mScaleMatrix.postScale(scale, scale, getWidth() / 2,
getHeight() / 2);
// 图片移动至屏幕中心
setImageMatrix(mScaleMatrix);
* 剪切图片,返回剪切后的bitmap对象
public Bitmap clip()
Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
draw(canvas);
return Bitmap.createBitmap(bitmap, mHorizontalPadding,
mVerticalPadding, getWidth() - 2 * mHorizontalPadding,
getWidth() - 2 * mHorizontalPadding);
* 边界检测
private void checkBorder()
RectF rect = getMatrixRectF();
float deltaX = 0;
float deltaY = 0;
int width = getWidth();
int height = getHeight();
// 如果宽或高大于屏幕,则控制范围
if (rect.width() &= width - 2 * mHorizontalPadding)
if (rect.left & mHorizontalPadding)
deltaX = -rect.left + mHorizontalP
if (rect.right & width - mHorizontalPadding)
deltaX = width - mHorizontalPadding - rect.
if (rect.height() &= height - 2 * mVerticalPadding)
if (rect.top & mVerticalPadding)
deltaY = -rect.top + mVerticalP
if (rect.bottom & height - mVerticalPadding)
deltaY = height - mVerticalPadding - rect.
mScaleMatrix.postTranslate(deltaX, deltaY);
}这里贴出了改变的代码,完整的代码就不贴了,太长了,如果大家学习过前面的博客应该也会比较熟悉,若没有也没事,后面会提供源码。贴代码的目的,第一让大家看下我们改变了哪些;第二,我想暴露出我们代码中的问题,我们设置了一个这样的变量:mHorizontalPadding = 20;这个是手动和ClipImageBorderView里面的成员变量mHorizontalPadding&写的一致,也就是说这个变量,两个自定义的View都需要使用且需要相同的值,目前我们的做法,写死且每个View各自定义一个。这种做法不用说,肯定不好,即使抽取成自定义属性,两个View都需要进行抽取,且用户在使用的时候,还需要设置为一样的值,总觉得有点强人所难~~5、不一样的自定义控件现在我们考虑下:易用性。目前为止,其实我们的效果已经实现了,但是需要用户这么写布局文件:&RelativeLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&#aaaaaa& &
&com.zhy.view.ZoomImageView
android:id=&@+id/id_zoomImageView&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:scaleType=&matrix&
android:src=&@drawable/a& /&
&com.zhy.view.ClipImageView
android:layout_width=&fill_parent&
android:layout_height=&fill_parent& /&
&/RelativeLayout&然后这两个类中都有一个mHorizontalPadding变量,且值一样,上面也说过,即使抽取成自定义变量,也需要在布局文件中每个View中各写一次。so, we need change . 这样的耦合度太夸张了,且使用起来蹩脚。于是乎,我决定把这两个控件想办法整到一起,用户使用时只需要声明一个控件:怎么做呢,我们使用组合的思想来自定义控件,我们再声明一个控件,继承子RelativeLayout,然后在这个自定义RelativeLayout中通过代码添加这两个自定义的布局,并且设置一些公用的属性,具体我们就开始行动。1、ClipImageLayout我们自定义一个RelativeLayout叫做ClipImageLayout,用于放置我们的两个自定义View,并且由ClipImageLayout进行设置边距,然后传给它内部的两个View,这样的话,跟用户交互的就一个ClipImageLayout,用户只需要设置一次边距即可。完整的ClipImageLayout代码:package com.zhy.
import android.content.C
import android.graphics.B
import android.util.AttributeS
import android.util.TypedV
import android.widget.RelativeL
import com.zhy.clippic.R;
* @author zhy
public class ClipImageLayout extends RelativeLayout
private ClipZoomImageView mZoomImageV
private ClipImageBorderView mClipImageV
* 这里测试,直接写死了大小,真正使用过程中,可以提取为自定义属性
private int mHorizontalPadding = 20;
public ClipImageLayout(Context context, AttributeSet attrs)
super(context, attrs);
mZoomImageView = new ClipZoomImageView(context);
mClipImageView = new ClipImageBorderView(context);
android.view.ViewGroup.LayoutParams lp = new LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT,
android.view.ViewGroup.LayoutParams.MATCH_PARENT);
* 这里测试,直接写死了图片,真正使用过程中,可以提取为自定义属性
mZoomImageView.setImageDrawable(getResources().getDrawable(
R.drawable.a));
this.addView(mZoomImageView, lp);
this.addView(mClipImageView, lp);
// 计算padding的px
mHorizontalPadding = (int) TypedValue.applyDimension(
PLEX_UNIT_DIP, mHorizontalPadding, getResources()
.getDisplayMetrics());
mZoomImageView.setHorizontalPadding(mHorizontalPadding);
mClipImageView.setHorizontalPadding(mHorizontalPadding);
* 对外公布设置边距的方法,单位为dp
* @param mHorizontalPadding
public void setHorizontalPadding(int mHorizontalPadding)
this.mHorizontalPadding = mHorizontalP
* 裁切图片
public Bitmap clip()
return mZoomImageView.clip();
可以看到,现在用户需要使用头像裁切功能只需要声明下ClipImageLayout即可,完全避免了上述我们描述的问题,我们对用户屏蔽了两个真正实现的类。这个也是自定义控件的一种方式,希望可以借此抛砖引玉,大家能够更加合理的设计出自己的控件~~好了,我们的ClipImageLayout搞定以后,下面看下如何使用~6、用法1、布局文件&RelativeLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&#aaaaaa&
&com.zhy.view.ClipImageLayout
android:id=&@+id/id_clipImageLayout&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent& /&
&/RelativeLayout&2、MainActivitypackage com.zhy.
import java.io.ByteArrayOutputS
import android.app.A
import android.content.I
import android.graphics.B
import android.os.B
import android.view.M
import android.view.MenuI
import com.zhy.view.ClipImageL
public class MainActivity extends Activity
private ClipImageLayout mClipImageL
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mClipImageLayout = (ClipImageLayout) findViewById(R.id.id_clipImageLayout);
public boolean onCreateOptionsMenu(Menu menu)
getMenuInflater().inflate(R.menu.main, menu);
public boolean onOptionsItemSelected(MenuItem item)
switch (item.getItemId())
case R.id.id_action_clip:
Bitmap bitmap = mClipImageLayout.clip();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
pressFormat.JPEG, 100, baos);
byte[] datas = baos.toByteArray();
Intent intent = new Intent(this, ShowImageActivity.class);
intent.putExtra(&bitmap&, datas);
startActivity(intent);
return super.onOptionsItemSelected(item);
我们在menu里面体检了一个裁切的按钮,点击后把裁切好的图片传递给我们的ShowImageActivity看一下眼menu的xml&menu xmlns:android=&/apk/res/android& &
android:id=&@+id/id_action_clip&
android:icon=&@drawable/actionbar_clip_icon&
android:showAsAction=&always|withText&
android:title=&裁切&/&
&/menu&3、ShowImageActivitypackage com.zhy.
import android.app.A
import android.graphics.B
import android.graphics.BitmapF
import android.os.B
import android.widget.ImageV
public class ShowImageActivity extends Activity
private ImageView mImageV
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.show);
mImageView = (ImageView) findViewById(R.id.id_showImage);
byte[] b = getIntent().getByteArrayExtra(&bitmap&);
Bitmap bitmap = BitmapFactory.decodeByteArray(b, 0, b.length);
if (bitmap != null)
mImageView.setImageBitmap(bitmap);
}layout/show.xml&RelativeLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&#ffffff& &
&ImageView
android:id=&@+id/id_showImage&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_centerInParent=&true&
android:src=&@drawable/tbug&
&/RelativeLayout&好了,到此我们的&高仿微信头像截取功能 就已经结束了~~希望大家可以从本篇博客中可以领悟到something~最后我们把ClipImageLayout里面的mHorizontalPadding设置为50,贴个静态效果图~ok ~~---------------------------------------------------------------------------------------------------------我建了一个QQ群,方便大家交流。群号:----------------------------------------------------------------------------------------------------------博主部分视频已经上线,如果你不喜欢枯燥的文本,请猛戳(初录,期待您的支持):
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1688597次
积分:22358
积分:22358
排名:第133名
原创:155篇
评论:4273条
长期为您推荐优秀博文、开源项目、视频等,进入还有好玩的等着你,欢迎扫一扫。
请勿重复加群,Thx
文章:11篇
阅读:46093
文章:10篇
阅读:24960
文章:67篇
阅读:1006209
(4)(3)(5)(4)(6)(7)(6)(7)(11)(10)(23)(17)(18)(39)(1)(1)已有 295 人收藏
&&&&实现微信选取图片并裁剪成头像的控件。
测试环境:
&&&&[Code4App]编译测试,测试环境:Xcode 5.0, iOS 7.0 以上。
使用方法:
//&callback&when&cropping&finished
-&(void)imageCropper:(VPImageCropperViewController&*)cropperViewController&didFinished:(UIImage&*)editedI
//&callback&when&cropping&cancelled
-&(void)imageCropperDidCancel:(VPImageCropperViewController&*)cropperViewC
//&present&the&cropper&view&controller
VPImageCropperViewController&*imgCropperVC&=&[[VPImageCropperViewController&alloc]&initWithImage:portraitImg&cropFrame:CGRectMake(0,&100.0f,&self.view.frame.size.width,&self.view.frame.size.width)&limitScaleRatio:3.0];
imgCropperVC.delegate&=&
[self&presentViewController:imgCropperVC&animated:YES&completion:^{
&&&&&&&&//&TO&DO
相关代码:
& (13128次查看,3593次下载)
& (13917次查看,3495次下载)
& (12991次查看,3184次下载)
& (13216次查看,3032次下载)
& (12195次查看,1956次下载)
& (15458次查看,5655次下载)
& (31260次查看,5697次下载)
& (27422次查看,6737次下载)
代码评论:
登录后方可评论
请问怎么加入到我的app里面,谢谢
登录后方可评论
请问下这个怎么才能在ios6上使用呢?
登录后方可评论
一切以github为准
登录后方可评论
- -撸主这个混蛋。
如果需要修改进行多种比例的截图记得将
-(UIImage *)getSubImage{} 中的
CGFloat h = squareFrame.size.width / scaleR
改回CGFloat h = squareFrame.size.height / scaleR
登录后方可评论
CGImageRelease(subImageRef) ;加上这一句就木有警告了
登录后方可评论
@Future_C : 在哪加啊
登录后方可评论
ARC 下的内存警告怎么办?
登录后方可评论
楼主很给力啊!
登录后方可评论
ARC模式下,有内存警告。摄像头拍照后,截取的图片会旋转90°
登录后方可评论
@呜喵王 : 你好,用前置摄像头,和后置摄像头顺时针或者逆时针旋转手机横着照照片在编辑页面会倒过来,请问知道怎么解决嘛
登录后方可评论
@丢了少年失了心丶 : 修改宏定义ORIGINAL_MAX_WIDTH的值就行了,具体代码没仔细看
登录后方可评论
@丢了少年失了心丶 : 旋转90°的问题,要 实现例子里面的2个函数 imageByScalingToMaxSize 和imageByScalingAndCroppingForSourceImage 函数
登录后方可评论
@呜喵王 : 怎么解决呀?跪求!
登录后方可评论
用前置伸向头拍照截取的图是旋转90°的怎么办?
登录后方可评论
@我是叉叉歪 : 这个方法解决不了旋转180°的问题怎么办
登录后方可评论
@丢了少年失了心丶 : 修改这个方法
-(UIImage *)getSubImage{
CGRect rect =self.view.
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGRect rect1 = self.ratioView.
UIImage * imgeee = [UIImage imageWithCGImage:CGImageCreateWithImageInRect([img CGImage], rect1)];
改成这样就行了
登录后方可评论
作者用的是storyboard,我改掉没用storyboard,结果会出现一点小问题,就是在选择图片时底部显示的 cancel 和 OK ,这个两个Button没有显示,因为VPImageCropperViewController.m文件里initControlBtn 方法里创建这两个Button时设置的Y轴坐标是:self.view.frame.size.height - 50.0f. 这样子在我的新建项目里用3.5寸模拟器测试时,这两个按钮是看不到的,因为self.view的高度获取到的是568,可以改成用 [ UIScreen mainScreen ].bounds 来获取屏幕高度
登录后方可评论
-控件分类-
-功能分类-
耗时 0.1174 秒苹果微信头像怎么缩小_百度知道
苹果微信头像怎么缩小
提问者采纳
现在还没这个功能 不过图片就可以做头像具体方法 新建一个 微信图片 一样大小的文档
复制你的找片到上面
然后按住shift不放有鼠标在图片的角处
这是等比例缩放
不按shift可任意拉伸 变形。
来自团队:
其他类似问题
苹果的相关知识
其他1条回答
没有这个功能哦
等待您来回答
为您推荐:
下载知道APP
随时随地咨询
出门在外也不愁本类阅读排行
本类推荐阅读
本类好评文章【Man哥语】微信朋友圈应该常常看到有人用和汽车合影做头像,但是拍的水平实在太烂,毫无逼格可言,这种情况在各种社交软件上也经常出现,那究竟该怎么才能拍出有逼格的头像。------------------------------------------正文文/刘越无论是工作用的微博,社交用的微信,还是约炮用的陌陌,我们都需要设定一张个性头像用于大家识别自己。想想看,你在微信里找人的时候是先看头像还是先看名字?显然一张彰显个性的个人照片被人记住的和寻找时的识别度是更高的。当你拥有一张逼格较高的头像时,你才可以理直气壮的问大家:我的头像牛B吗?大家也会异口同声的回答:像!等等,既然我们是汽车网站,我们讲述的内容自然要跟车相关。也就是说我今天要跟大家聊的不是怎样拍一个高逼格的头像,而是怎么跟车一起拍一张高逼格的头像。入门篇——手机速成班:说明:如果说拍照需要天时地利人和的话,那么没有人会每天带着相机等待着三者统一的那一刻。手机却不一样,如今10个人里有12个都有手机强迫症,离开什么都能活,就是一刻也离不开手机。坐一趟飞机比一个月不让抽烟还难受。扯远了,总之手机是无处不在,那我们的速成班就从手机开始讲起……所需物品:手机一部,墨镜一副,爱车一辆,“摄影师”一枚。拍摄过程:首先我们需要一个好天气,找一个背景干净的地方拍摄。洗白白的爱车是彰显逼格必不可少的工具。注意,我们要的是“范儿”,而这个范儿跟车的好坏关系不大。当然,车越好效果越好。新科鲁兹作为神车党钟爱的小钢炮成为了我们此次的配角。别问我为什么是它,当天我能从公司开走的就只有这辆工作车了。第二步,我们把车停在马路边,让车的前侧对着太阳的方向,好方便我顺光拍摄。不仅要注意顺光,也要注意背景是否脏乱差。摆好车后,最好将车的大灯和雾灯打开,让车看起来有点灵性,同时如图所示,让轮子向内侧转动一些,这样会更有动感。第三步,摄影师要远离车辆,尽量用手机变焦后拍摄,尽可能的不要用广角。画面也不要横平竖直,会显呆板,稍微倾斜手机,会让画面显得动感十足。第四步,“摄影师”一定要尽可能的低角度拍摄,甚至可以趴在地上(如果条件允许的话),这样模特的伟岸、高大和逼格才能瞬间爆发出来。哦,对了,画面不要太满,边缘多留一些空白,方便各种软件剪裁头像。如果手机能直接拍摄正方形图像是最理想的。按下快门一切就OK了,就这几步,比把大象装进冰箱里困难不到哪里去。不过要注意模特的服装要稍微讲究一点点,墨镜和冷酷的表情也有助于提升逼格,双脚跨立双手插兜不要看镜头,这样更有味道。如果你以上都做到了,那么你将得到这样一张图片。虽然逼格一般,但也比跟方向盘合影要高大上的多。尽量自然一点,不要像我们的模特这么拘谨。这样已经很好了,但是如果模特再迈出一步,那么逼格将再次提升一个档次。拍摄方法跟之前一样,唯一不同的是模特需要向后迈一步,然后看着镜头再向镜头走两步。这个期间尽情的抓拍吧,你会得到这样的一张照片。双手插兜,注视镜头,一只脚刚刚离地的时候是模特的最佳姿态。好啦,最入门的逼格头像其实就是这么简单,甚至不需要什么后期。喜欢后期的哥们可以用手机的美图秀秀、百度魔图之类的软件遮挡一下车牌或做适当的个人风格处理。刚才的教学虽然非常的入门级,但是也足以让身高一米七的人变得逼格一米九。如果您想逼格两米起步的话,那不妨带上单反和两个朋友,尝试一下进阶篇的玩法。进阶篇——单反脚架玩虚幻:说明:没啥好说明的,创意我替大家想好了,方法也都全盘写给大家,照搬的可以得到理想照片,会举一反三的“小明”们可以如法炮制各种稀奇照片,让我们走起!所需物品:单反相机一台,闪光灯一个,爱车一辆,结实点的三脚架一副,“摄影师”一名,“苦力”一头。拍摄环境:五彩斑斓,灯光明亮且车辆非常少的地库,或者霓虹闪烁的街边安全地带。拍摄过程:首先我们要保证车辆的背景(车辆右前方)是灯光璀璨的街道或地库。车辆方向盘向左打死,熄火,保证车辆在空挡。第二步,架设三脚架,降下左后车窗,根据车辆不同,向窗内插入一根或两根脚架腿,另一根(或两根)支撑在车门外部。轻轻的升车窗,让车窗卡住三脚架的腿,如果怕弄坏车窗,请在脚架底部和与窗户接触的部分垫上毛巾。第三步,调整好构图,同时摄影师要一直把相机背带挂在脖子上,防止相机意外脱落。相机调整为手动曝光,一般来说先将快门定在3秒到5秒,然后调整光圈和闪光灯的输出,保证曝光正常。第四步,模特如图所示坐好,屁股尽量向外一点,右手扶着方向盘,略微带点力,防止方向盘跑偏,同时在拍摄时要保持5秒不动不眨眼不喘气!(有付出才有收获)曝光期间,任意时间手动出发闪光灯即可推车的苦力要保持车辆匀速。第五步,苦力在车尾推车,车辆平稳运动时,摄影师右手按下快门,左手平举闪光灯,给模特面部补光一次。多拍摄几次,会有一张你非常满意的。如此照搬,你就会得到以下的照片。这只是原片,做头像时要适度剪裁。当然,如果换一个环境,换一辆车,还会得到更理想的照片,就像这样↓或者这样↓关门拍一张就是这样,记得让后视镜里能看到你的脸举一反三还能这样↓拍摄位置:车顶
曝光时间:3秒
闪光灯在车内或者这样 ↓ 拍摄位置:后备厢
曝光时间:5秒拍摄好后,简单的PS一下会让画面变的更加好看。但作为头像小图,其实不修图也无所谓。我们玩的是创意,是逼格,不是画质。下次会跟大家谈谈如何跟方向盘拍合影还不被大家反感(貌似这是陌陌玩家的大爱啊)!放大招之前,还是把这两种方法玩儿熟吧,摄影是要循序渐进的哦。本文原载于易车------------------------------------------我是谁?汽车人-AutoMan,小名Man哥,用另类姿势解读汽车,也是有意思(微信公众号:youyisi_cn)的小伙伴。爱上我:打开微信通信录-添加-查找公众号-搜索“AutoMan”关注即可。想看好玩的:回复:紧凑,看《最不安全的紧凑型轿车排名》;回复:一句,看《一句话揭50车企老底 心理素质差者勿入》;回复:拆解,看《10万公里汽车拆解大排名》;回复:外媒,看《自主车怎么样,外媒测评不留情》;回复:中国车,看《中国汽车可靠性排名 大众 通用雪铁龙统统垫底》;回复:小问题,看《为啥德国车小问题多于日本车》;回复:报告,看《汽车可靠性排名出炉(美国) 菲亚特和克莱斯勒烂到家了》;回复:车距,看《停车帝该怎么做 可能是最全的停车技》;回复:昂科威,看《6缺陷让昂科威难成途观杀手》;回复:速腾,看《大众速腾用铁皮噪音治断轴》;回复:流言,看《汽车流言终结》;回复:电影,看《10部最经典的汽车电影》;回复:值德,看《8款最值得买的德系车》;回复:值日,看《8款最值得买的日系车》;回复:缩写,看《常见汽车缩写》;回复:问答1,看《Man哥问答第一期》;回复:问答2,看《Man哥问答第二期》;回复:问答3,看《Man哥问答第三期》;回复:问答4,看《Man哥问答第四期》;回复:日本,看《10款最不值得买的日本车》;回复:SUV值得,看《15万元以下最值得买的SUV》;回复:SUV不值,看《15万元以下最不值得买的SUV》;回复:值得,看《10款最值得买的轿车(15万以下)》;回复:不值,看《10款最不值得买的轿车(15万以下)》;回复:小型,看《10个小型SUV的优缺点》;回复:伪军,看《10款日系“伪军”车型》;回复:谣言,看《10大汽车谣言 你信过几个?》;回复:选车,看《9个简单的选车依据》;回复:按钮,看《7步搞懂汽车各种按钮》;回复:级别,看《汽车级别划分 你真的懂吗?》;回复:德系,看《10款最不值得买的德系车》;回复:提车,看《11个提车注意事项》;回复:心理,看《10个国人买车的怪异心理》;回复:毁车,看《16个毁车的坏习惯》;回复:自燃,看《7方法防汽车自燃》;回复:二手,看《5招教你识别事故二手车》;回复:习惯,看《13个开车费油的坏习惯》;回复:停车,看《10款最难停车的车型》;回复:德国,看《10大可靠性最差的汽车品牌(德版)》;回复:可靠,看《10个可靠性最差的汽车品牌(美版)》;回复:17,看《17款油耗最低的汽车(中国)》;回复:油耗,看《11款中国最费油车型》扫一扫 加上AutoMan 
 文章为作者独立观点,不代表微头条立场
的最新文章
有很多人质疑Man哥,你丫就知道喷,有值得买的吗?这么一说,Man哥惭愧,尽管写了那么多值得买,还是被误解,那就来个各国际汽车品牌,最值得买与最不值得买。【Man哥语】最近又有一大波新车被曝光,兰博基尼SUV将在2017年上市了,Jeep自由侠推出加长版,凯迪拉【Man哥语】有车位才能购车?那是不是以后不用摇号了呢?据悉,北京拟在2016年实行有停车位才能购车,此消息【Man哥语】Man哥问答14期来了,感谢小伙伴们的积极提问,但问题太多了只能挑选部分回复。我们开通了买车咨【Man哥语】现在不少人结婚都讲究排场和气势,长长的车队、豪车打头,确实好看,但有时候又觉得缺乏特殊。若是偶【Man哥语】加价提车,主要针对市场热门车型。方式从直接现金、加装饰、强行买全险、到购买售后服务卡等等,花样5月26日,百余家媒体和自媒体联合发布第三十七期微信巅峰榜,该榜囊括了5月18日-5月24日一周内有影响力的【Man哥语】遛鸟不是遛那个鸟!不知是车主抢了鸽子的妹纸还是汉纸,这鸟儿一路与汽车狂飙,“小鸟在前面带路~~【Man哥语】最近好像很久没写最不值得买,Man哥大招冷却CD呢,反正被骂黑德系也惯了,咱就拿德系先开个刀,【Man哥语】近年来敞篷跑车的发展十分迅速,越来越多的富有异域风情、动感十足、操纵灵活的双座跑车进入了人们的【Man哥语】马路上违规变道的行为太多了,但是像这样的变道算是比较突出了,而且才扣1分,如果没看错,分明走了【Man哥语】随高田“气囊门”愈演愈烈,全球累计涉及召回车辆近5000万辆,其中仅在美国就涉及3600万辆,【Man哥语】据海外媒体日前评选结果,排列出全球速度最慢的十款车型。这十款车都是微型车,极速如果能达到60英【Man哥语】很多小伙伴在向Man哥询问车的时候,经常会得到保值率差进而不推荐这个理由,但又很少有人说说国内【Man哥语】好吧,这是昨天的一篇文章,不过好像大家不是很认可,Man哥想想,大概是没说到位,也没解释清楚。经常微信和Man哥聊车的朋友都有这么个印象,Man哥总是建议大家买大车、买SUV,而且总说是基于安全考虑。但事实和证据却没详细说。今天就与大家聊聊汽车被动安全的5个关键问题,也是常常陷入误区的5个问题。【Man哥语】人都应有爱心,时刻都不要吝啬你的爱心,指不定在什么地方就有啥好运降临呢,这就是俗话说的攒人品吧【Man哥语】本周又有一大波新车照片被曝光,在SUV热卖的今天奔驰也终于坐不住了,预计在2019年将推出一款【Man哥语】Man哥问答13期来了,要感谢那些给Man哥打气的小伙伴们,你们的支持让Man哥更加努力(文章【Man哥语】这是今天很火的一个视频,内容是关于女司机,Man哥也不知道该说什么好,感觉无话可说,只能感叹,【Man哥语】好消息好消息,有点卖不动的大众汽车正在对几款畅销车型加大折扣力度,而迫于压力的通用和福特汽也于【Man哥语】近期国内SUV市场依然火爆,询问紧凑型SUV的小伙伴也特别多,除了主被动安全,车辆油耗也是重要【Man哥语】今天是520,好多媒体都在吵着要告白,Man哥想来想去,那就和各位一直支持AutoMan的小伙【Man哥语】有人觉得Man哥你整天就瞎说,哪来那么多不值得买,存在即是合理,有人买就说明人家有可取之处,什【Man哥语】日系一直以可靠性著称,原因之一,就在于其较为封闭的零部件供应体系。这个体系的优势就是长期合作,【Man哥语】前几天发了篇发动机不可靠的品牌,但是好多人就开始狂喷说不客观,不真实,更有人说,你这数据哪来的【Man哥语】大概是不少小伙伴被真正的车主所打动,从梦境中梦醒,或许是3·15一系列报道对大众信徒打击太大。大概每个喜欢探索的爱车人,都渴望与路虎来一次边疆行。凭借路虎出色的越野性能,在更加宽阔的视野里去发现生活的无【Man哥语】最近有小伙伴留言表示,此前Man哥所发可靠性排行都是品牌之间的对比,要求发一篇同级别车型的可靠发动机是汽车的最核心部件,可靠性关键啊,心不好,那这车基本也好不到哪去(大众例外,大众靠信仰驱动)。有一家欧洲的汽车保险公司整出各大汽车品牌发动机故障率排行榜。话说这些品牌怎么就一点也不让人意外呢?【Man哥语】最近又有一大波新车被曝光,雅阁去了趟牙科医院,龅牙变的秀气了很多。在SUV大行其道的今天,sm【Man哥语】今天Man哥问答内容比较多,不过这仍是很小部分问题的节选,大多数这些提问没有发在私人微信,而是【Man哥语】据美国杂志Motor Trend5月11日报道,英国著名汽车节目《疯狂汽车秀》(Top Gea【Man哥语】上周刚刚提醒大家,安全驾驶铭记于心。遇见路怒狂能忍则忍,但有那么一些脾气大的司机就是不肯忍。这【Man哥语】近日,福建长乐警方查处乱用远光灯,1个小时22辆车被查!远光灯会让司机瞬间致盲,极容易发生事故【Man哥语】国内SUV市场异常火爆,销量节节攀升,各大汽车品牌在近期也追加了不少新车型,让小伙伴们一时不知当一个品牌诞生80年的时候,会推出怎样的产品代表自己,诠释自己?捷豹这个经常打破常规设计,让人跌破眼镜的豪华【Man哥语】本届上海车展有很多很多新车,但是,很多新车厂商的原则都是只可远观,想看看里面那都不可以,宝贝着2015上海车展于4月20日至29日在上海国家会议中心举行,没有了车模的车展虽然少了一丝娱乐气息,但也让人能【Man哥语】一位西班牙的手做工艺家‘Motores Patelo’近期公开发表了自己的新作品:一台巴掌大的【Man哥语】前几期,与大家分享了一份最差汽车品牌口碑排行榜,有小伙伴要求发一份口碑前10名排行作为参考。有AutoMan-No1很MAN,超酷,小坏,我是汽车人-AutoMan,小名Man哥,为你提供有情趣有情义的能源、汽车新闻,带你爱上汽车,喜欢我就关注我吧!热门文章最新文章

我要回帖

更多关于 苹果机丢了怎么办 的文章

 

随机推荐