ios小技巧總結(jié):image相關(guān)

相冊圖片選擇器
https://github.com/banchichen/TZImagePickerController
YYImage代替SDWebImage
http://blog.csdn.net/zhonggaorong/article/details/51283448

由URL獲取圖片(異步加載)

SDWebImage用法羞反,只需要提供一個(gè)下載的url和占位圖,就可以在回調(diào)里拿到下載后的圖片

  • imageview控件使用
#import <SDWebImage/UIImageView+WebCache.h>

[imageview sd_setImageWithURL:[NSURL URLWithString:@"......"] placeholderImage:[UIImage imageNamed:@"placeholder"] completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {

        imageview.image = image;
        NSLog(@"圖片加載完成");
    }];

// 也可以圖片下載完成后,直接顯示下載后的圖片
[imageview sd_setImageWithURL:[NSURL URLWithString:@"....."]];
  • Button控件使用
#import <SDWebImage/UIButton+WebCache.h>

[self.headBtn sd_setImageWithURL:[NSURL URLWithString:headImgUrl] forState:UIControlStateNormal placeholderImage:[UIImage imageNamed:@"登錄2"]];

由URL獲取圖片(同步加載)

    NSString *imgurl = @".....";
    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imgurl]];
    UIImage *img3 = [UIImage imageWithData:data];

加載本地圖片

NSString *path = [[NSBundle mainBundle] pathForResource:@"xx" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:path];
或
NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:“png”];
 NSData *image = [NSData dataWithContentsOfFile:filePath];
 UIImage *image = [UIImage imageWithData:image];

加載方法的區(qū)別

imageWithContentsOfFile:僅加載圖片讶坯,圖像數(shù)據(jù)不會緩存邓夕。適用于加載較大的圖片以及使用情況較少的場景赖捌,以降低內(nèi)存消耗概耻。
imageNamed:在系統(tǒng)緩存中查找并返回一個(gè)圖片對象如果它存在的話寂汇。如果緩存中沒有找到相應(yīng)的圖片权逗,這個(gè)方法從指定的文檔中加載然后緩存并返回這個(gè)對象美尸。適用于圖片會頻繁的使用時(shí)。

圖片NSData轉(zhuǎn)換

 1.//NSData轉(zhuǎn)換為UIImage
 NSData *imageData = [NSData dataWithContentsOfFile: imagePath];
 UIImage *image = [UIImage imageWithData: imageData];
 
 2.//UIImage轉(zhuǎn)換為NSData
 NSData *imageData = UIImagePNGRepresentation(image);

截屏

-(void)cutScreenPic{
    //開啟上下文
    CGSize  imageSize = self.view.bounds.size;
    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);

    //將某個(gè)View的所有內(nèi)容渲染到圖形的上下文
    CGContextRef context = UIGraphicsGetCurrentContext();
    [self.view.layer renderInContext:context];
    //獲得圖片
    UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
    //保存
    [UIImagePNGRepresentation(image) writeToFile:@"/Users/CC/Desktop/imageName.png" atomically:YES];
}

改變圖片渲染方式(設(shè)置Rander)

    img = [img imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];  

壓縮圖片

/*  壓縮圖片至 指定像素  */
- (UIImage *)rescaleImageToPX:(CGFloat )toPX{
    CGSize size = self.size;
    
    if(size.width <= toPX && size.height <= toPX)
        return self;    //  圖片如果比指定像素小斟薇,不需壓縮
    
    CGFloat scale = size.width / size.height;   //比例
    
    if(size.width > size.height){
        size.width = toPX;
        size.height = size.width / scale;
    }
    else{
        size.height = toPX;
        size.width = size.height * scale;
    }
    
    return [self rescaleImageToSize:size];
}

/*  壓縮圖片至 指定尺寸   */
- (UIImage *)rescaleImageToSize:(CGSize)size
{
    CGRect rect = (CGRect){CGPointZero, size};
    
    UIGraphicsBeginImageContext(rect.size);
    
    [self drawInRect:rect];
    
    UIImage *resImage = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    return resImage;
}
+ (UIImage *)compressImage:(UIImage *)imgSrc withSize:(CGSize)size  {  

    UIGraphicsBeginImageContext(size);  
    CGRect rect = {{0,0}, size};  
    [imgSrc drawInRect:rect];  
    UIImage *compressedImg = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext();  

    return compressedImg;  
}

多選圖片

http://www.reibang.com/p/6181f32bb844

聊天泡泡尖角圖片

http://www.reibang.com/p/c6c645394b06

比較兩個(gè)圖片是否相等

- (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2
{
    NSData *data1 = UIImagePNGRepresentation(image1);
    NSData *data2 = UIImagePNGRepresentation(image2);

    return [data1 isEqual:data2];
}

圖片上傳

用AFN3.0進(jìn)行上傳操作

//首先壓縮圖片
NSData *imageData = UIImageJPEGRepresentation(_imageV.image, 0.1);

- (void)upLoad{

    //1. 創(chuàng)建管理者對象
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    //2. 地址师坎、參數(shù),用字典保存堪滨。不需要的可以省略胯陋。
    NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:_fireID,@"id",_longitude,@"longitude",_latitude,@"latitude", nil];
  
    NSString *urlString = @“... ...”;//(后臺給你url)

    //3. post請求
    [manager POST:urlString parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

    // 在網(wǎng)絡(luò)開發(fā)中,上傳文件時(shí)不允許文件重名惶岭,解決方案:
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
     formatter.dateFormat   = @"yyyyMMddHHmmss";    // 設(shè)置時(shí)間格式
     NSString *str   = [formatter stringFromDate:[NSDate date]];

     NSString *fileName  = [NSString stringWithFormat:@"%@.png", str];

         /*
         此方法參數(shù):
             1. 要上傳的[二進(jìn)制數(shù)據(jù)]
             2. imgFile是對應(yīng)后臺給你url里面的圖片參數(shù)寿弱。
             3. 要保存在服務(wù)器上的[文件名]
             4. 上傳文件的[mimeType]
        */     
     [formData appendPartWithFileData:imageData name:@"imgFile" fileName:fileName mimeType:@"image/png"];

    } progress:^(NSProgress * _Nonnull uploadProgress) {
        // 上傳進(jìn)度
        NSLog(@"%lf",1.0 *uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);     

    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        NSLog(@"請求成功:%@",responseObject);

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        NSLog(@"請求失敗:%@",error);
    }];
}

判斷圖片類型

//封裝工具方法按灶。通過圖片Data數(shù)據(jù)第一個(gè)字節(jié) 來獲取圖片擴(kuò)展名
- (NSString *)contentTypeForImageData:(NSData *)data {
    uint8_t c;
    [data getBytes:&c length:1];
    switch (c) {
        case 0xFF:
            return @"jpeg";
        case 0x89:
            return @"png";     
        case 0x47:
            return @"gif";        
        case 0x49:   
        case 0x4D:
            return @"tiff";        
        case 0x52:  
            if ([data length] < 12) {
                return nil;
            }
            NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
            if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"])        
            {
                return @"webp";
            }
            return nil;
    }
    return nil;
}

//外界調(diào)用
//假設(shè)這是一個(gè)網(wǎng)絡(luò)獲取的URL
    NSString *path = @"http://pic.rpgsky.net/images/2016/07/26/3508cde5f0d29243c7d2ecbd6b9a30f1.png";
    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];
    //調(diào)用獲取圖片擴(kuò)展名
    NSString *string = [self contentTypeForImageData:data];
    //輸出結(jié)果為 png
    NSLog(@"%@",string);

在圖片上繪制文字

//自定義工具方法
- (UIImage *)imageWithTitle:(NSString *)title fontSize:(CGFloat)fontSize
{
        //畫布大小
        CGSize size=CGSizeMake(self.size.width,self.size.height);
        //創(chuàng)建一個(gè)基于位圖的上下文
        UIGraphicsBeginImageContextWithOptions(size,NO,0.0);//opaque:NO  scale:0.0
        [self drawAtPoint:CGPointMake(0.0,0.0)];
        //文字居中顯示在畫布上
        NSMutableParagraphStyle* paragraphStyle = [[NSParagraphStyle       defaultParagraphStyle] mutableCopy];
        paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
        paragraphStyle.alignment=NSTextAlignmentCenter;//文字居中
        //計(jì)算文字所占的size,文字居中顯示在畫布上
        CGSize sizeText=[title boundingRectWithSize:self.size options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]}context:nil].size;
        CGFloat width = self.size.width;
        CGFloat height = self.size.height;
        CGRect rect = CGRectMake((width-sizeText.width)/2, (height-sizeText.height)/2, sizeText.width, sizeText.height);
        //繪制文字
        [title drawInRect:rect withAttributes:@{ NSFontAttributeName:[UIFont systemFontOfSize:fontSize],NSForegroundColorAttributeName:[ UIColor whiteColor],NSParagraphStyleAttributeName:paragraphStyle}];
        //返回繪制的新圖形
        UIImage *newImage= UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return newImage;
}

拉伸圖片

例子:QQ會話窗口症革,氣泡的背景圖片拉伸

//   自定義工具方法
+ (UIImage *)resizeWithImage:(UIImage *)image{
    CGFloat top = image.size.height/2.0;
    CGFloat left = image.size.width/2.0;
    CGFloat bottom = image.size.height/2.0;
    CGFloat right = image.size.width/2.0;
    return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)resizingMode:UIImageResizingModeStretch];
}

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode;
//此方法返回返回拉伸后的圖像鸯旁。第二個(gè)參數(shù)resizingMode是圖像拉伸模式:
UIImageResizingModeTile 平鋪 噪矛、UIImageResizingModeStretch,  拉伸

獲得灰度圖

+ (UIImage*)covertToGrayImageFromImage:(UIImage*)sourceImage
{
    int width = sourceImage.size.width;
    int height = sourceImage.size.height;

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
    CGContextRef context = CGBitmapContextCreate (nil,width,height,8,0,colorSpace,kCGImageAlphaNone);
    CGColorSpaceRelease(colorSpace);

    if (context == NULL) {
        return nil;
    }

    CGContextDrawImage(context,CGRectMake(0, 0, width, height), sourceImage.CGImage);
    CGImageRef contextRef = CGBitmapContextCreateImage(context);
    UIImage *grayImage = [UIImage imageWithCGImage:contextRef];
    CGContextRelease(context);
    CGImageRelease(contextRef);

    return grayImage;
}

由View生成圖片

- (UIImage *)makeImageWithView:(UIView *)view withSize:(CGSize)size
{
// 下面方法:第一個(gè)參數(shù) 表示區(qū)域大小。
第二個(gè)參數(shù) 表示是否非透明铺罢。半透明效果需要傳NO艇挨,否則傳YES。
第三個(gè)參數(shù) 是屏幕密度 [UIScreen mainScreen].scale韭赘。
    UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

獲取圖片中某點(diǎn)的RGB


- (UIColor *)colorAtPixel:(CGPoint)point {
    
    // Cancel if point is outside image coordinates
    if (!CGRectContainsPoint(CGRectMake(0.0f, 0.0f, self.size.width, self.size.height), point)) {
        return nil;
    }
    
    NSInteger pointX = trunc(point.x);
    NSInteger pointY = trunc(point.y);
    CGImageRef cgImage = self.CGImage;
    
    NSUInteger width = self.size.width;
    NSUInteger height = self.size.height;
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    int bytesPerPixel = 4;
    int bytesPerRow = bytesPerPixel * 1;
    NSUInteger bitsPerComponent = 8;
    unsigned char pixelData[4] = { 0, 0, 0, 0 };
    CGContextRef context = CGBitmapContextCreate(pixelData,
                                                 1,
                                                 1,
                                                 bitsPerComponent,
                                                 bytesPerRow,
                                                 colorSpace,
                                                 kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
    CGColorSpaceRelease(colorSpace);
    CGContextSetBlendMode(context, kCGBlendModeCopy);
    
    // Draw the pixel we are interested in onto the bitmap context
    CGContextTranslateCTM(context, -pointX, pointY-(CGFloat)height);
    CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, (CGFloat)width, (CGFloat)height), cgImage);
    CGContextRelease(context);
    
    // Convert color values [0..255] to floats [0.0..1.0]
    CGFloat red   = (CGFloat)pixelData[0] / 255.0f;
    CGFloat green = (CGFloat)pixelData[1] / 255.0f;
    CGFloat blue  = (CGFloat)pixelData[2] / 255.0f;
    CGFloat alpha = (CGFloat)pixelData[3] / 255.0f;
    
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}

生成純色圖片

- (UIImage *)imageWithColor:(UIColor *)color {
    // 描述矩形
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    // 開啟位圖上下文
    UIGraphicsBeginImageContext(rect.size);
    // 獲取位圖上下文
    CGContextRef context = UIGraphicsGetCurrentContext();
    // 使用color演示填充上下文
    CGContextSetFillColorWithColor(context, [color CGColor]);
    // 渲染上下文
    CGContextFillRect(context, rect);
    // 從上下文中獲取圖片
    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
    // 結(jié)束上下文
    UIGraphicsEndImageContext();
   
     return theImage;
}

毛玻璃效果

QQ.png

根據(jù)bundle中的文件名讀取圖片

+ (UIImage *)imageWithFileName:(NSString *)name {
    NSString *extension = @"png";

    NSArray *components = [name componentsSeparatedByString:@"."];
    if ([components count] >= 2) {
        NSUInteger lastIndex = components.count - 1;
        extension = [components objectAtIndex:lastIndex];

        name = [name substringToIndex:(name.length-(extension.length+1))];
    }

    // 如果為Retina屏幕且存在對應(yīng)圖片缩滨,則返回Retina圖片,否則查找普通圖片
    if ([UIScreen mainScreen].scale == 2.0) {
        name = [name stringByAppendingString:@"@2x"];

        NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:extension];
        if (path != nil) {
            return [UIImage imageWithContentsOfFile:path];
        }
    }

    if ([UIScreen mainScreen].scale == 3.0) {
        name = [name stringByAppendingString:@"@3x"];

        NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:extension];
        if (path != nil) {
            return [UIImage imageWithContentsOfFile:path];
        }
    }

    NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:extension];
    if (path) {
        return [UIImage imageWithContentsOfFile:path];
    }

    return nil;
}

保存圖片到本地

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Image.png"];

[UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES];

保存圖片到本地相冊

-(void)saveImage:(UIImage *)img{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        
        UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
        
    });
}

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{
        
    if(error != NULL){
        [SVProgressHUD showNOmessage:@"保存失敗"];
    }else{
        [SVProgressHUD showYESmessage:@"保存成功"];
    }
    
}

保存到新建相冊

https://blog.csdn.net/sdefzhpk/article/details/52763409

圖片合并

//圖片合成
+ (UIImage *)imageCombineImage:(UIImage *)useImage maskImage:(UIImage *)maskImage
{
    UIGraphicsBeginImageContextWithOptions(useImage.size ,NO, 0.0);
    
    [useImage drawInRect:CGRectMake(0, 0, useImage.size.width, useImage.size.height)];
    
    //四個(gè)參數(shù)為水印圖片的位置
    [maskImage drawInRect:CGRectMake(50, 50, 50, 50)];

    //如果要多個(gè)位置顯示泉瞻,繼續(xù)drawInRect就行
    //[maskImage drawInRect:CGRectMake(0, useImage.size.height/2, useImage.size.width, useImage.size.height/2)];
    UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return resultImage;
}

UIImage和Base64格式圖片相互轉(zhuǎn)化

/* 方法一 */
- (NSString *)encodeToBase64String:(UIImage *)image {
 return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}

- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
  NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
  return [UIImage imageWithData:data];
}


/* 方法二 */
- (BOOL) imageHasAlpha: (UIImage *) image  {  
    CGImageAlphaInfo alpha = CGImageGetAlphaInfo(image.CGImage);  
    return (alpha == kCGImageAlphaFirst ||  
            alpha == kCGImageAlphaLast ||  
            alpha == kCGImageAlphaPremultipliedFirst ||  
            alpha == kCGImageAlphaPremultipliedLast);  
}  

- (NSString *) image2DataURL: (UIImage *) image  {  
    NSData *imageData = nil;  
    NSString *mimeType = nil;  
  
    if ([self imageHasAlpha: image]) {  
        imageData = UIImagePNGRepresentation(image);  
        mimeType = @"image/png";  
    } else {  
        imageData = UIImageJPEGRepresentation(image, 1.0f);  
        mimeType = @"image/jpeg";  
    }  
  
    return [NSString stringWithFormat:@"data:%@;base64,%@", mimeType,  
           [imageData base64EncodedStringWithOptions: 0]];  
}  
- (UIImage *) dataURL2Image: (NSString *) imgSrc  
{  
    NSURL *url = [NSURL URLWithString: imgSrc];  
    NSData *data = [NSData dataWithContentsOfURL: url];  
    UIImage *image = [UIImage imageWithData: data];  
  
    return image;  
}  

圖片處理

https://github.com/lisongrc/UIImage-Categories

多張圖片上傳

http://www.reibang.com/p/f147942a515b

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脉漏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子袖牙,更是在濱河造成了極大的恐慌侧巨,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鞭达,死亡現(xiàn)場離奇詭異司忱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)畴蹭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門坦仍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人叨襟,你說我怎么就攤上這事繁扎。” “怎么了芹啥?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵锻离,是天一觀的道長。 經(jīng)常有香客問我墓怀,道長汽纠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任傀履,我火速辦了婚禮虱朵,結(jié)果婚禮上莉炉,老公的妹妹穿的比我還像新娘。我一直安慰自己碴犬,他們只是感情好絮宁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著服协,像睡著了一般绍昂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上偿荷,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天窘游,我揣著相機(jī)與錄音,去河邊找鬼跳纳。 笑死忍饰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寺庄。 我是一名探鬼主播艾蓝,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼斗塘!你這毒婦竟也來了赢织?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤逛拱,失蹤者是張志新(化名)和其女友劉穎敌厘,沒想到半個(gè)月后台猴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朽合,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年饱狂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了曹步。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡休讳,死狀恐怖讲婚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情俊柔,我是刑警寧澤筹麸,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站雏婶,受9級特大地震影響物赶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜留晚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一酵紫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦奖地、人聲如沸橄唬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仰楚。三九已至,卻和暖如春犬庇,著一層夾襖步出監(jiān)牢的瞬間缸血,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工械筛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捎泻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓埋哟,卻偏偏與公主長得像笆豁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子赤赊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評論 2 353